From cf5cfbcb8ff63005b1e08f9718ce3f80f919271e Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Mon, 30 Jun 2008 09:12:16 +0000 Subject: Updated CMake file to fix compilation. Patch by darkKnight. --- ChangeLog | 11 ++++++++--- src/CMakeLists.txt | 8 ++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 160e3b58..759af38a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-06-30 Bjørn Lindeijer + + * src/CMakeLists.txt: Updated CMake file to fix compilation. Patch by + darkKnight. + 2008-06-24 Philipp Sehmisch * src/particle.cpp, src/particle.h, src/particleemitter.cpp, @@ -108,7 +113,7 @@ * src/gui/popupmenu.cpp: Applied QOAL's patch to fix popup bug. -2008-05-14 fate +2008-05-14 Fate * src/configuration.cpp, src/game.cpp, src/player_relations.h, src/beingmanager.h, src/gui/setup_players.cpp, src/gui/setup.cpp, @@ -183,8 +188,8 @@ 2008-04-26 Dennis Friis - * src/inventory.cpp: Avoid stacking equipment other than arrows. Based on - similar fix in inventoryhandler. + * src/inventory.cpp: Avoid stacking equipment other than arrows. Based + on similar fix in inventoryhandler. * src/gui/trade.cpp: Text fix, z => GP. * src/net/playerhandler.cpp: When picking up GP from trade or quest, tell the user in the chat window like with items. diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0c2ef4cd..20f2f761 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 @@ -163,6 +165,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 @@ -324,6 +330,8 @@ SET(SRCS particleemitter.h player.cpp player.h + player_relations.cpp + player_relations.h properties.h serverinfo.h shopitem.cpp -- cgit v1.2.3-60-g2f50 From 4ca8675700dfae625376c4afdd30b8590d68087e Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Tue, 1 Jul 2008 17:41:30 +0000 Subject: Merged revisions 4044-4067 via svnmerge from https://themanaworld.svn.sourceforge.net/svnroot/themanaworld/tmw/trunk ........ r4044 | b_lindeijer | 2008-04-07 11:02:38 +0200 (Mon, 07 Apr 2008) | 2 lines Added support for basing one sprite definition on another by including it. ........ r4057 | b_lindeijer | 2008-04-08 20:43:44 +0200 (Tue, 08 Apr 2008) | 4 lines Implemented support for an arbitrary number of map layers. The only layer requirement for map layers are now that the fringe layer is called "Fringe" and that the collision layer is called "Collision". ........ r4067 | b_lindeijer | 2008-04-11 00:03:57 +0200 (Fri, 11 Apr 2008) | 3 lines Fixed some compiler warnings and don't try to load particle effects when no file is set. ........ --- ChangeLog | 24 +++++- src/gui/viewport.cpp | 12 ++- src/log.h | 4 +- src/map.cpp | 206 +++++++++++++++++++++++--------------------- src/map.h | 110 +++++++++++++++-------- src/resources/imageset.cpp | 2 +- src/resources/imageset.h | 14 ++- src/resources/mapreader.cpp | 164 +++++++++++++++++++++-------------- src/resources/mapreader.h | 4 +- src/resources/spritedef.cpp | 98 +++++++++++++-------- src/resources/spritedef.h | 6 ++ src/tileset.h | 3 +- 12 files changed, 388 insertions(+), 259 deletions(-) diff --git a/ChangeLog b/ChangeLog index 759af38a..37c6ed4a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -284,6 +284,23 @@ src/Makefile.am: Re-enabled non-functional item shortcut window, planned to be fixed for 0.0.25. +2008-04-12 Bjørn Lindeijer + + * src/gui/widgets/layout.h, src/gui/skill.cpp, src/gui/trade.h, + src/log.h, src/resources/mapreader.cpp, src/resources/spritedef.cpp: + Fixed some compiler warnings and don't try to load particle effects + when no file is set. + +2008-04-08 Bjørn Lindeijer + + * src/map.cpp, src/gui/viewport.cpp, src/tileset.h, src/map.h, + src/resources/imageset.cpp, src/resources/mapreader.cpp, + src/resources/imageset.h, src/resources/mapreader.h, + data/maps/new_3-1.tmx, data/maps/new_1-1.tmx: Implemented support for + an arbitrary number of map layers. The only layer requirement for map + layers are now that the fringe layer is called "Fringe" and that the + collision layer is called "Collision". + 2008-04-07 Bjørn Lindeijer * src/particle.cpp, src/utils/xml.cpp, src/utils/xml.h, @@ -292,11 +309,14 @@ src/resources/itemdb.cpp, src/resources/npcdb.cpp, src/resources/spritedef.h: Added XML::Document class which simplifies parsing an XML document and automatically cleans it up again. + * src/resources/spritedef.cpp, src/resources/spritedef.h, + data/graphics/sprites/item008.xml: Added support for basing one sprite + definition on another by including it. * src/being.cpp: Fixed crash on trying to show out of range emoticon. * src/winver.h, README, configure.ac, data/help/changes.txt, data/help/header.txt, NEWS, CMakeLists.txt: Updated version, release date and changes. - + 2008-04-03 David Athay * src/game.cpp: Tweaked disconnect dialog, hoping to fix a crash bug. @@ -307,7 +327,7 @@ src/resources/npcdb.cpp, data/npcs.xml, src/Makefile.am, tmc.cbp: Implemented NPC XML database which maps NPC IDs to one or more animation files and thus enables animated NPCs. - + 2008-03-30 Dennis Friis * configure.ac: Updated for tmwdata split. diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp index 01324a47..9d1e5a1d 100644 --- a/src/gui/viewport.cpp +++ b/src/gui/viewport.cpp @@ -48,6 +48,8 @@ #include +extern volatile int tick_time; + Viewport::Viewport(): mMap(0), mPixelViewX(0.0f), @@ -222,12 +224,8 @@ Viewport::draw(gcn::Graphics *gcnGraphics) // Draw tiles and sprites if (mMap) { - mMap->draw(graphics, (int) mPixelViewX, (int) mPixelViewY, 0); - drawTargetCursor(graphics); - mMap->draw(graphics, (int) mPixelViewX, (int) mPixelViewY, 1); - mMap->draw(graphics, (int) mPixelViewX, (int) mPixelViewY, 2); - mMap->drawOverlay(graphics, mPixelViewX, mPixelViewY, - (int) config.getValue("OverlayDetail", 2)); + mMap->draw(graphics, (int) mPixelViewX, (int) mPixelViewY); + drawTargetCursor(graphics); // TODO: Draw the cursor with the sprite drawTargetName(graphics); } @@ -259,7 +257,7 @@ Viewport::draw(gcn::Graphics *gcnGraphics) } } - // Draw player nickname, 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++) { 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/map.cpp b/src/map.cpp index c65b0cd6..23eff3b0 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -27,6 +27,7 @@ #include #include "beingmanager.h" +#include "configuration.h" #include "game.h" #include "graphics.h" #include "particle.h" @@ -40,6 +41,8 @@ #include "utils/dtor.h" #include "utils/tostring.h" +extern volatile int tick_time; + /** * A location on a tile map. Used for pathfinding, open list. */ @@ -62,6 +65,80 @@ struct Location MetaTile *tile; }; +MapLayer::MapLayer(int x, int y, int width, int height, bool isFringeLayer): + mX(x), mY(y), + mWidth(width), mHeight(height), + mIsFringeLayer(isFringeLayer) +{ + const int size = mWidth * mHeight; + 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, + int scrollX, int scrollY, + const Sprites &sprites) const +{ + startX -= mX; + 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) { + 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); + } + } + } + + // Draw any remaining sprites + if (mIsFringeLayer) { + while (si != sprites.end()) { + (*si)->draw(graphics, -scrollX, -scrollY); + si++; + } + } +} + Map::Map(int width, int height, int tileWidth, int tileHeight): mWidth(width), mHeight(height), mTileWidth(tileWidth), mTileHeight(tileHeight), @@ -69,22 +146,17 @@ Map::Map(int width, int height, int tileWidth, int tileHeight): mOnClosedList(1), mOnOpenList(2), mLastScrollX(0.0f), mLastScrollY(0.0f) { - int size = mWidth * mHeight; + const int size = mWidth * mHeight; mMetaTiles = new MetaTile[size]; - mTiles = new Image*[size * 3]; - std::fill_n(mTiles, size * 3, (Image*)0); } Map::~Map() { - // clean up map data + // delete metadata, layers, tilesets and overlays delete[] mMetaTiles; - delete[] mTiles; - // clean up tilesets + for_each(mLayers.begin(), mLayers.end(), make_dtor(mLayers)); for_each(mTilesets.begin(), mTilesets.end(), make_dtor(mTilesets)); - mTilesets.clear(); - // clean up overlays for_each(mOverlays.begin(), mOverlays.end(), make_dtor(mOverlays)); } @@ -99,9 +171,9 @@ void Map::initializeOverlays() const std::string name = "overlay" + toString(i); Image *img = resman->getImage(getProperty(name + "image")); - float speedX = getFloatProperty(name + "scrollX"); - float speedY = getFloatProperty(name + "scrollY"); - float parallax = getFloatProperty(name + "parallax"); + const float speedX = getFloatProperty(name + "scrollX"); + const float speedY = getFloatProperty(name + "scrollY"); + const float parallax = getFloatProperty(name + "parallax"); if (img) { @@ -114,6 +186,11 @@ void Map::initializeOverlays() } } +void Map::addLayer(MapLayer *layer) +{ + mLayers.push_back(layer); +} + void Map::addTileset(Tileset *tileset) { mTilesets.push_back(tileset); @@ -127,63 +204,31 @@ bool spriteCompare(const Sprite *a, const Sprite *b) return a->getPixelY() < b->getPixelY(); } -void Map::draw(Graphics *graphics, int scrollX, int scrollY, int layer) +void Map::draw(Graphics *graphics, int scrollX, int scrollY) { int endPixelY = graphics->getHeight() + scrollY + mTileHeight - 1; - // If drawing the fringe layer, make sure sprites are sorted - SpriteIterator si; - if (layer == 1) - { - mSprites.sort(spriteCompare); - si = mSprites.begin(); - endPixelY += mMaxTileHeight - mTileHeight; - } + // TODO: Do this per-layer + endPixelY += mMaxTileHeight - mTileHeight; int startX = scrollX / mTileWidth; int startY = scrollY / mTileHeight; int endX = (graphics->getWidth() + scrollX + mTileWidth - 1) / mTileWidth; int endY = endPixelY / mTileHeight; - if (startX < 0) startX = 0; - if (startY < 0) startY = 0; - if (endX > mWidth) endX = mWidth; - if (endY > mHeight) endY = mHeight; + // Make sure sprites are sorted + mSprites.sort(spriteCompare); - 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 (layer == 1) - { - while (si != mSprites.end() && (*si)->getPixelY() <= y * 32 - 32) - { - (*si)->draw(graphics, -scrollX, -scrollY); - si++; - } - } - - for (int x = startX; x < endX; x++) - { - Image *img = getTile(x, y, layer); - if (img) { - graphics->drawImage(img, - x * mTileWidth - scrollX, - y * mTileHeight - scrollY + - mTileHeight - img->getHeight()); - } - } + Layers::const_iterator layeri = mLayers.begin(); + for (; layeri != mLayers.end(); ++layeri) { + (*layeri)->draw(graphics, + startX, startY, endX, endY, + scrollX, scrollY, + mSprites); } - // Draw any remaining sprites - if (layer == 1) - { - while (si != mSprites.end()) - { - (*si)->draw(graphics, -scrollX, -scrollY); - si++; - } - } + drawOverlay(graphics, scrollX, scrollY, + (int) config.getValue("OverlayDetail", 2)); } void Map::drawOverlay(Graphics *graphics, @@ -226,23 +271,10 @@ void Map::drawOverlay(Graphics *graphics, }; } -void Map::setTileWithGid(int x, int y, int layer, int gid) -{ - if (layer == 3) - { - Tileset *set = getTilesetWithGid(gid); - setWalk(x, y, (!set || (gid - set->getFirstGid() == 0))); - } - else if (layer < 3) - { - setTile(x, y, layer, getTileWithGid(gid)); - } -} - class ContainsGidFunctor { public: - bool operator() (Tileset* set) + bool operator() (const Tileset* set) const { return (set->getFirstGid() <= gid && gid - set->getFirstGid() < (int)set->size()); @@ -260,17 +292,6 @@ Tileset* Map::getTilesetWithGid(int gid) const return (i == mTilesets.end()) ? NULL : *i; } -Image* Map::getTileWithGid(int gid) const -{ - Tileset *set = getTilesetWithGid(gid); - - if (set) { - return set->get(gid - set->getFirstGid()); - } - - return NULL; -} - void Map::setWalk(int x, int y, bool walkable) { mMetaTiles[x + y * mWidth].walkable = walkable; @@ -301,16 +322,6 @@ bool Map::contains(int x, int y) const return x >= 0 && y >= 0 && x < mWidth && y < mHeight; } -void Map::setTile(int x, int y, int layer, Image *img) -{ - mTiles[x + y * mWidth + layer * (mWidth * mHeight)] = img; -} - -Image* Map::getTile(int x, int y, int layer) -{ - return mTiles[x + y * mWidth + layer * (mWidth * mHeight)]; -} - MetaTile* Map::getMetaTile(int x, int y) { return &mMetaTiles[x + y * mWidth]; @@ -367,8 +378,8 @@ Path Map::findPath(int startX, int startY, int destX, int destY) for (int dx = -1; dx <= 1; dx++) { // Calculate location of tile to check - int x = curr.x + dx; - int y = curr.y + dy; + const int x = curr.x + dx; + const int y = curr.y + dy; // Skip if if we're checking the same tile we're leaving from, // or if the new location falls outside of the map boundaries @@ -379,7 +390,8 @@ Path Map::findPath(int startX, int startY, int destX, int destY) MetaTile *newTile = getMetaTile(x, y); - // Skip if the tile is on the closed list or collides unless its the destination tile + // Skip if the tile is on the closed list or collides unless + // its the destination tile if (newTile->whichList == mOnClosedList || (tileCollides(x, y) && !(x == destX && y == destY))) { @@ -430,7 +442,7 @@ Path Map::findPath(int startX, int startY, int destX, int destY) // Update Gcost and Fcost of new tile newTile->Gcost = Gcost; - newTile->Fcost = newTile->Gcost + newTile->Hcost; + newTile->Fcost = Gcost + newTile->Hcost; if (x != destX || y != destY) { // Add this tile to the open list @@ -447,7 +459,7 @@ Path Map::findPath(int startX, int startY, int destX, int destY) // Found a shorter route. // Update Gcost and Fcost of the new tile newTile->Gcost = Gcost; - newTile->Fcost = newTile->Gcost + newTile->Hcost; + newTile->Fcost = Gcost + newTile->Hcost; // Set the current tile as the parent of the new tile newTile->parentX = curr.x; @@ -488,7 +500,7 @@ Path Map::findPath(int startX, int startY, int destX, int destY) return path; } -void Map::addParticleEffect (std::string effectFile, int x, int y) +void Map::addParticleEffect(const std::string &effectFile, int x, int y) { ParticleEffectData newEffect; newEffect.file = effectFile; diff --git a/src/map.h b/src/map.h index fab7bfb7..95532eb3 100644 --- a/src/map.h +++ b/src/map.h @@ -32,6 +32,7 @@ class AmbientOverlay; class Graphics; class Image; +class MapLayer; class Particle; class Sprite; class Tileset; @@ -41,8 +42,7 @@ struct PATH_NODE; typedef std::vector Tilesets; typedef std::list Sprites; typedef Sprites::iterator SpriteIterator; - -extern volatile int tick_time; +typedef std::vector Layers; /** * A meta tile stores additional information about a location on a tile map. @@ -66,6 +66,56 @@ struct MetaTile bool walkable; /**< Can beings walk on this tile */ }; +/** + * A map layer. Stores a grid of tiles and their offset, and implements layer + * rendering. + */ +class MapLayer +{ + public: + /** + * Constructor, taking layer origin, size and whether this layer is the + * fringe layer. The fringe layer is the layer that draws the sprites. + * There can be only one fringe layer per map. + */ + MapLayer(int x, int y, int width, int height, bool isFringeLayer); + + /** + * Destructor. + */ + ~MapLayer(); + + /** + * Set tile image, with x and y in layer coordinates. + */ + void setTile(int x, int y, Image *img); + + /** + * Get tile image, with x and y in layer coordinates. + */ + Image *getTile(int x, int y) const; + + /** + * Draws this layer to the given graphics context. The coordinates are + * expected to be in map range and will be translated to local layer + * coordinates and clipped to the layer's dimensions. + * + * The given sprites are only drawn when this layer is the fringe + * layer. + */ + void draw(Graphics *graphics, + int startX, int startY, + int endX, int endY, + int scrollX, int scrollY, + const Sprites &sprites) const; + + private: + int mX, mY; + int mWidth, mHeight; + bool mIsFringeLayer; /**< Whether the sprites are drawn. */ + Image **mTiles; +}; + /** * A tile map. */ @@ -89,39 +139,30 @@ class Map : public Properties void initializeOverlays(); /** - * Draws a map layer to the given graphics output. - */ - void draw(Graphics *graphics, int scrollX, int scrollY, int layer); - - /** - * Draws the overlay graphic to the given graphics output. - */ - void - drawOverlay(Graphics *graphics, float scrollX, float scrollY, - int detail); - - /** - * Adds a tileset to this map. + * Draws the map to the given graphics output. This method draws all + * layers, sprites and overlay effects. + * + * TODO: For efficiency reasons, this method could take into account + * the clipping rectangle set on the Graphics object. However, + * currently the map is always drawn full-screen. */ - void - addTileset(Tileset *tileset); + void draw(Graphics *graphics, int scrollX, int scrollY); /** - * Sets a tile using a global tile id. Used by the layer loading - * routine. + * Adds a layer to this map. The map takes ownership of the layer. */ - void - setTileWithGid(int x, int y, int layer, int gid); + void addLayer(MapLayer *layer); /** - * Set tile ID. + * Adds a tileset to this map. The map takes ownership of the tileset. */ - void setTile(int x, int y, int layer, Image *img); + void addTileset(Tileset *tileset); /** - * Get tile ID. + * Finds the tile set that a tile with the given global id is part of. */ - Image *getTile(int x, int y, int layer); + Tileset* + getTilesetWithGid(int gid) const; /** * Get tile reference. @@ -183,7 +224,7 @@ class Map : public Properties /** * Adds a particle effect */ - void addParticleEffect (std::string effectFile, int x, int y); + void addParticleEffect(const std::string &effectFile, int x, int y); /** * Initializes all added particle effects @@ -193,15 +234,11 @@ class Map : public Properties private: /** - * Converts a global tile id to the Image* pointing to the associated - * tile image. - */ - Image* getTileWithGid(int gid) const; - - /** - * Finds the tile set that a tile with the given global id is part of. + * Draws the overlay graphic to the given graphics output. */ - Tileset* getTilesetWithGid(int gid) const; + void + drawOverlay(Graphics *graphics, float scrollX, float scrollY, + int detail); /** * Tells whether a tile is occupied by a being. @@ -217,15 +254,14 @@ class Map : public Properties int mTileWidth, mTileHeight; int mMaxTileHeight; MetaTile *mMetaTiles; - Image **mTiles; - + Layers mLayers; Tilesets mTilesets; Sprites mSprites; // Pathfinding members int mOnClosedList, mOnOpenList; - // Overlay Data + // Overlay data std::list mOverlays; float mLastScrollX; float mLastScrollY; diff --git a/src/resources/imageset.cpp b/src/resources/imageset.cpp index 4b6dd592..1a753648 100644 --- a/src/resources/imageset.cpp +++ b/src/resources/imageset.cpp @@ -50,7 +50,7 @@ ImageSet::~ImageSet() } Image* -ImageSet::get(size_type i) +ImageSet::get(size_type i) const { if (i >= mImages.size()) { diff --git a/src/resources/imageset.h b/src/resources/imageset.h index 15c21d90..fa1840ec 100644 --- a/src/resources/imageset.h +++ b/src/resources/imageset.h @@ -47,14 +47,20 @@ class ImageSet : public Resource */ ~ImageSet(); - int getWidth() { return mWidth; }; + /** + * Returns the width of the images in the image set. + */ + int getWidth() const { return mWidth; }; - int getHeight() { return mHeight; }; + /** + * Returns the height of the images in the image set. + */ + int getHeight() const { return mHeight; }; typedef std::vector::size_type size_type; - Image* get(size_type i); + Image* get(size_type i) const; - size_type size() { return mImages.size(); } + size_type size() const { return mImages.size(); } private: std::vector mImages; diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp index 2a080fb0..328b66e0 100644 --- a/src/resources/mapreader.cpp +++ b/src/resources/mapreader.cpp @@ -206,20 +206,17 @@ MapReader::readMap(const std::string &filename) Map* MapReader::readMap(xmlNodePtr node, const std::string &path) { - xmlChar *prop; - // Take the filename off the path - std::string pathDir = path.substr(0, path.rfind("/") + 1); + const std::string pathDir = path.substr(0, path.rfind("/") + 1); - prop = xmlGetProp(node, BAD_CAST "version"); - xmlFree(prop); + //xmlChar *prop = xmlGetProp(node, BAD_CAST "version"); + //xmlFree(prop); - int w = XML::getProperty(node, "width", 0); - int h = XML::getProperty(node, "height", 0); - int tilew = XML::getProperty(node, "tilewidth", DEFAULT_TILE_WIDTH); - int tileh = XML::getProperty(node, "tileheight", DEFAULT_TILE_HEIGHT); - int layerNr = 0; - Map *map = new Map(w, h, tilew, tileh); + const int w = XML::getProperty(node, "width", 0); + const int h = XML::getProperty(node, "height", 0); + const int tw = XML::getProperty(node, "tilewidth", DEFAULT_TILE_WIDTH); + const int th = XML::getProperty(node, "tileheight", DEFAULT_TILE_HEIGHT); + Map *map = new Map(w, h, tw, th); for_each_xml_child_node(childNode, node) { @@ -232,9 +229,7 @@ MapReader::readMap(xmlNodePtr node, const std::string &path) } else if (xmlStrEqual(childNode->name, BAD_CAST "layer")) { - logger->log("- Loading layer %d", layerNr); - readLayer(childNode, map, layerNr); - layerNr++; + readLayer(childNode, map); } else if (xmlStrEqual(childNode->name, BAD_CAST "properties")) { @@ -246,15 +241,31 @@ MapReader::readMap(xmlNodePtr node, const std::string &path) { if (xmlStrEqual(objectNode->name, BAD_CAST "object")) { - std::string objName = XML::getProperty(objectNode, "name", ""); - std::string objType = XML::getProperty(objectNode, "type", ""); - int objX = XML::getProperty(objectNode, "x", 0); - int objY = XML::getProperty(objectNode, "y", 0); + const std::string objType = + XML::getProperty(objectNode, "type", ""); + + if (objType == "WARP" || objType == "NPC" || + objType == "SCRIPT" || objType == "SPAWN") + { + // Silently skip server-side objects. + continue; + } + + 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); + if (objType == "PARTICLE_EFFECT") { + if (objName.empty()) { + logger->log(" Warning: No particle file given"); + continue; + } + map->addParticleEffect(objName, objX, objY); } else @@ -280,43 +291,66 @@ MapReader::readProperties(xmlNodePtr node, Properties* props) continue; // Example: - xmlChar *name = xmlGetProp(childNode, BAD_CAST "name"); - xmlChar *value = xmlGetProp(childNode, BAD_CAST "value"); + const std::string name = XML::getProperty(childNode, "name", ""); + const std::string value = XML::getProperty(childNode, "value", ""); - if (name && value) { - props->setProperty((const char*)name, (const char*)value); - } + if (!name.empty() && !value.empty()) + props->setProperty(name, value); + } +} - if (name) xmlFree(name); - if (value) xmlFree(value); +static void setTile(Map *map, MapLayer *layer, int x, int y, int gid) +{ + const Tileset * const set = map->getTilesetWithGid(gid); + if (layer) { + // Set regular tile on a layer + Image * const img = set ? set->get(gid - set->getFirstGid()) : 0; + layer->setTile(x, y, img); + } else { + // Set collision tile + map->setWalk(x, y, (!set || (gid - set->getFirstGid() == 0))); } } void -MapReader::readLayer(xmlNodePtr node, Map *map, int layer) +MapReader::readLayer(xmlNodePtr node, Map *map) { - int h = map->getHeight(); - int w = map->getWidth(); + // Layers are not necessarily the same size as the map + const int w = XML::getProperty(node, "width", map->getWidth()); + const int h = XML::getProperty(node, "height", map->getHeight()); + const int offsetX = XML::getProperty(node, "xoffset", 0); + const int offsetY = XML::getProperty(node, "yoffset", 0); + const std::string name = XML::getProperty(node, "name", ""); + + const bool isFringeLayer = (name == "Fringe"); + const bool isCollisionLayer = (name == "Collision"); + + MapLayer *layer = 0; + + if (!isCollisionLayer) { + 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. Layers are assumed to be map size, with (0,0) as - // origin. + // Load the tile data for_each_xml_child_node(childNode, node) { if (!xmlStrEqual(childNode->name, BAD_CAST "data")) continue; - xmlChar *encoding = xmlGetProp(childNode, BAD_CAST "encoding"); - xmlChar *compression = xmlGetProp(childNode, BAD_CAST "compression"); + const std::string encoding = + XML::getProperty(childNode, "encoding", ""); + const std::string compression = + XML::getProperty(childNode, "compression", ""); - if (encoding && xmlStrEqual(encoding, BAD_CAST "base64")) + if (encoding == "base64") { - xmlFree(encoding); - - if (compression && !xmlStrEqual(compression, BAD_CAST "gzip")) { + if (!compression.empty() && compression != "gzip") { logger->log("Warning: only gzip layer compression supported!"); - xmlFree(compression); return; } @@ -348,34 +382,29 @@ MapReader::readLayer(xmlNodePtr node, Map *map, int layer) delete[] charData; if (binData) { - if (compression) { - if (xmlStrEqual(compression, BAD_CAST "gzip")) { - // Inflate the gzipped layer data - unsigned char *inflated; - unsigned int inflatedSize = - inflateMemory(binData, binLen, inflated); - - free(binData); - binData = inflated; - binLen = inflatedSize; - - if (inflated == NULL) - { - logger->log("Error: Could not decompress layer!"); - xmlFree(compression); - return; - } + if (compression == "gzip") { + // Inflate the gzipped layer data + 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; } - xmlFree(compression); } for (int i = 0; i < binLen - 3; i += 4) { - int gid = binData[i] | + const int gid = binData[i] | binData[i + 1] << 8 | binData[i + 2] << 16 | binData[i + 3] << 24; - map->setTileWithGid(x, y, layer, gid); + setTile(map, layer, x, y, gid); x++; if (x == w) {x = 0; y++;} @@ -390,8 +419,8 @@ MapReader::readLayer(xmlNodePtr node, Map *map, int layer) if (!xmlStrEqual(childNode2->name, BAD_CAST "tile")) continue; - int gid = XML::getProperty(childNode2, "gid", -1); - map->setTileWithGid(x, y, layer, gid); + const int gid = XML::getProperty(childNode2, "gid", -1); + setTile(map, layer, x, y, gid); x++; if (x == w) { @@ -423,20 +452,20 @@ MapReader::readTileset(xmlNodePtr node, return NULL; } - int firstGid = XML::getProperty(node, "firstgid", 0); - int tw = XML::getProperty(node, "tilewidth", map->getTileWidth()); - int th = XML::getProperty(node, "tileheight", map->getTileHeight()); + const int firstGid = XML::getProperty(node, "firstgid", 0); + const int tw = XML::getProperty(node, "tilewidth", map->getTileWidth()); + const int th = XML::getProperty(node, "tileheight", map->getTileHeight()); for_each_xml_child_node(childNode, node) { if (!xmlStrEqual(childNode->name, BAD_CAST "image")) continue; - xmlChar* source = xmlGetProp(childNode, BAD_CAST "source"); + const std::string source = XML::getProperty(childNode, "source", ""); - if (source) + if (!source.empty()) { - std::string sourceStr = std::string((const char*)source); + std::string sourceStr = source; sourceStr.erase(0, 3); // Remove "../" ResourceManager *resman = ResourceManager::getInstance(); @@ -446,14 +475,15 @@ MapReader::readTileset(xmlNodePtr node, { Tileset *set = new Tileset(tilebmp, tw, th, firstGid); tilebmp->decRef(); - xmlFree(source); return set; } else { - logger->log("Warning: Failed to load tileset (%s)", source); + logger->log("Warning: Failed to load tileset (%s)", + source.c_str()); } } + // Only one image element expected break; } diff --git a/src/resources/mapreader.h b/src/resources/mapreader.h index d16ff1d5..60056358 100644 --- a/src/resources/mapreader.h +++ b/src/resources/mapreader.h @@ -63,10 +63,10 @@ class MapReader readProperties(xmlNodePtr node, Properties* props); /** - * Reads a map layer. + * Reads a map layer and adds it to the given map. */ static void - readLayer(xmlNodePtr node, Map *map, int layer); + readLayer(xmlNodePtr node, Map *map); /** * Reads a tile set. diff --git a/src/resources/spritedef.cpp b/src/resources/spritedef.cpp index 334474d7..ebc60240 100644 --- a/src/resources/spritedef.cpp +++ b/src/resources/spritedef.cpp @@ -70,33 +70,8 @@ SpriteDef *SpriteDef::load(std::string const &animationFile, int variant) } } - // Get the variant - int variant_num = XML::getProperty(rootNode, "variants", 0); - int variant_offset = 0; - - if (variant_num > 0 && variant < variant_num) - { - variant_offset = variant * XML::getProperty(rootNode, "variant_offset", 0); - } - SpriteDef *def = new SpriteDef; - - for_each_xml_child_node(node, rootNode) - { - if (xmlStrEqual(node->name, BAD_CAST "imageset")) - { - def->loadImageSet(node, palettes); - } - else if (xmlStrEqual(node->name, BAD_CAST "action")) - { - def->loadAction(node, variant_offset); - } - else if (xmlStrEqual(node->name, BAD_CAST "include")) - { - def->includeSprite(node); - } - } - + def->loadSprite(rootNode, variant, palettes); def->substituteActions(); return def; } @@ -119,11 +94,47 @@ void SpriteDef::substituteActions() substituteAction(ACTION_DEAD, ACTION_HURT); } +void SpriteDef::loadSprite(xmlNodePtr spriteNode, int variant, + const std::string &palettes) +{ + // Get the variant + const int variantCount = XML::getProperty(spriteNode, "variants", 0); + int variant_offset = 0; + + if (variantCount > 0 && variant < variantCount) + { + variant_offset = + variant * XML::getProperty(spriteNode, "variant_offset", 0); + } + + for_each_xml_child_node(node, spriteNode) + { + if (xmlStrEqual(node->name, BAD_CAST "imageset")) + { + loadImageSet(node, palettes); + } + else if (xmlStrEqual(node->name, BAD_CAST "action")) + { + loadAction(node, variant_offset); + } + else if (xmlStrEqual(node->name, BAD_CAST "include")) + { + includeSprite(node); + } + } +} + void SpriteDef::loadImageSet(xmlNodePtr node, std::string const &palettes) { - int width = XML::getProperty(node, "width", 0); - int height = XML::getProperty(node, "height", 0); - std::string name = XML::getProperty(node, "name", ""); + const std::string name = XML::getProperty(node, "name", ""); + + // We don't allow redefining image sets. This way, an included sprite + // definition will use the already loaded image set with the same name. + if (mImageSets.find(name) != mImageSets.end()) + return; + + const int width = XML::getProperty(node, "width", 0); + const int height = XML::getProperty(node, "height", 0); std::string imageSrc = XML::getProperty(node, "src", ""); Dye::instantiate(imageSrc, palettes); @@ -184,9 +195,9 @@ SpriteDef::loadAnimation(xmlNodePtr animationNode, Action *action, ImageSet *imageSet, int variant_offset) { - std::string directionName = + const std::string directionName = XML::getProperty(animationNode, "direction", ""); - SpriteDirection directionType = makeSpriteDirection(directionName); + const SpriteDirection directionType = makeSpriteDirection(directionName); if (directionType == DIRECTION_INVALID) { @@ -201,7 +212,7 @@ SpriteDef::loadAnimation(xmlNodePtr animationNode, // Get animation frames for_each_xml_child_node(frameNode, animationNode) { - int delay = XML::getProperty(frameNode, "delay", 0); + const int delay = XML::getProperty(frameNode, "delay", 0); int offsetX = XML::getProperty(frameNode, "offsetX", 0); int offsetY = XML::getProperty(frameNode, "offsetY", 0); offsetY -= imageSet->getHeight() - 32; @@ -209,7 +220,7 @@ SpriteDef::loadAnimation(xmlNodePtr animationNode, if (xmlStrEqual(frameNode->name, BAD_CAST "frame")) { - int index = XML::getProperty(frameNode, "index", -1); + const int index = XML::getProperty(frameNode, "index", -1); if (index < 0) { @@ -230,7 +241,7 @@ SpriteDef::loadAnimation(xmlNodePtr animationNode, else if (xmlStrEqual(frameNode->name, BAD_CAST "sequence")) { int start = XML::getProperty(frameNode, "start", -1); - int end = XML::getProperty(frameNode, "end", -1); + const int end = XML::getProperty(frameNode, "end", -1); if (start < 0 || end < 0) { @@ -263,12 +274,23 @@ SpriteDef::loadAnimation(xmlNodePtr animationNode, void SpriteDef::includeSprite(xmlNodePtr includeNode) { + // TODO: Perform circular dependency check, since it's easy to crash the + // client this way. const std::string filename = XML::getProperty(includeNode, "file", ""); - ResourceManager *resman = ResourceManager::getInstance(); - SpriteDef *sprite = resman->getSprite("graphics/sprites/" + filename); - // TODO: Somehow implement actually including it - sprite->decRef(); + if (filename.empty()) + return; + + XML::Document doc("graphics/sprites/" + filename); + xmlNodePtr rootNode = doc.rootNode(); + + if (!rootNode || !xmlStrEqual(rootNode->name, BAD_CAST "sprite")) + { + logger->log("Error, no sprite root node in %s", filename.c_str()); + return; + } + + loadSprite(rootNode, 0); } void diff --git a/src/resources/spritedef.h b/src/resources/spritedef.h index 531dfb3d..72c2566f 100644 --- a/src/resources/spritedef.h +++ b/src/resources/spritedef.h @@ -91,6 +91,12 @@ class SpriteDef : public Resource */ ~SpriteDef(); + /** + * Loads a sprite element. + */ + void loadSprite(xmlNodePtr spriteNode, int variant, + const std::string &palettes = ""); + /** * Loads an imageset element. */ diff --git a/src/tileset.h b/src/tileset.h index 6af69235..625fac1b 100644 --- a/src/tileset.h +++ b/src/tileset.h @@ -44,8 +44,7 @@ class Tileset : public ImageSet /** * Returns the first gid. */ - int - getFirstGid() + int getFirstGid() const { return mFirstGid; } -- cgit v1.2.3-60-g2f50 From 3be4300f12d4e936a1beea0021b14cf6313ee3b9 Mon Sep 17 00:00:00 2001 From: David Athay Date: Tue, 8 Jul 2008 15:16:22 +0000 Subject: #359 patch by Scraggy --- ChangeLog | 4 +++ src/gui/chat.cpp | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++----- src/gui/chat.h | 9 ++++++ tmw.cbp | 4 +++ 4 files changed, 100 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 37c6ed4a..59956b69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-07-08 David Athay + + * src/gui/chat.cpp, src/gui/chat.h: Mantis #359 patch by Scraggy. + 2008-06-30 Bjørn Lindeijer * src/CMakeLists.txt: Updated CMake file to fix compilation. Patch by diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp index 5e3aaf60..2894bb70 100644 --- a/src/gui/chat.cpp +++ b/src/gui/chat.cpp @@ -275,13 +275,25 @@ ChatWindow::chatSend(const std::string &nick, std::string msg) } else if (msg.substr(0, IS_HELP_LENGTH) == IS_HELP) { - chatLog("-- Help --", BY_SERVER); - chatLog("/help: Display this help.", BY_SERVER); - chatLog("/announce: Global announcement (GM only)", BY_SERVER); - chatLog("/where: Display map name", BY_SERVER); - chatLog("/who: Display number of online users", BY_SERVER); - chatLog("/clear: Clears this window", BY_SERVER); - chatLog("/whisper : Sends a private to ", BY_SERVER); + msg.erase(0, IS_HELP_LENGTH + 1); + trim(msg); + std::size_t space = msg.find(" "); + std::string msg1; + if (space == std::string::npos) + { + msg1 = ""; + } + else + { + msg1 = msg.substr(space + 1, msg.length()); + msg = msg.substr(0, space); + } + if (msg != "" && msg.at(0) == '/') + { + msg.erase(0, 1); + } + trim(msg1); + help(msg, msg1); } else if (msg.substr(0, IS_WHERE_LENGTH) == IS_WHERE) { @@ -469,3 +481,67 @@ ChatWindow::setVisible(bool isVisible) mTmpVisible = false; } +void ChatWindow::help(const std::string &msg1, const std::string &msg2) +{ + chatLog("-- Help --", BY_SERVER); + if (msg1 == "") + { + chatLog("/announce: Global announcement (GM only)", BY_SERVER); + chatLog("/clear: Clears this window", BY_SERVER); + chatLog("/help: Display this help.", BY_SERVER); + chatLog("/where: Display map name", BY_SERVER); + chatLog("/whisper : Sends a private " + " to ", BY_SERVER); + chatLog("/who: Display number of online users", BY_SERVER); + chatLog("For more information, type /help ", BY_SERVER); + return; + } + if (msg1 == "announce") + { + chatLog("Command: /announce ", BY_SERVER); + chatLog("*** only available to a GM ***", BY_SERVER); + chatLog("This command sends the message to " + "all players currently online.", BY_SERVER); + return; + } + if (msg1 == "clear") + { + chatLog("Command: /clear", BY_SERVER); + chatLog("This command clears the chat log of previous chat.", + BY_SERVER); + return; + } + if (msg1 == "help") + { + chatLog("Command: /help", BY_SERVER); + chatLog("This command displays a list of all commands available.", + BY_SERVER); + chatLog("Command: /help ", BY_SERVER); + chatLog("This command displays help on .", BY_SERVER); + return; + } + if (msg1 == "where") + { + chatLog("Command: /where", BY_SERVER); + chatLog("This command displays the name of the current map.", + BY_SERVER); + return; + } + if (msg1 == "whisper") + { + chatLog("Command: /whisper ", BY_SERVER); + chatLog("This command sends the message to has spaces in it, enclose it in " + "double quotes (\").", BY_SERVER); + return; + } + if (msg1 == "who") + { + chatLog("Command: /who", BY_SERVER); + chatLog("This command displays the number of players currently " + "online.", BY_SERVER); + return; + } + chatLog("Unknown command.", BY_SERVER); + chatLog("Type /help for a list of commands.", BY_SERVER); +} diff --git a/src/gui/chat.h b/src/gui/chat.h index 0bdc76f1..a1d659a0 100644 --- a/src/gui/chat.h +++ b/src/gui/chat.h @@ -208,6 +208,15 @@ class ChatWindow : public Window, public gcn::ActionListener, void scroll(int amount); + /** + * help implements the /help command + * + * @param msg1 is the command that the player needs help on + * @param msg2 is the sub-command relating to the command + */ + void + help(const std::string &msg1, const std::string &msg2); + private: Network *mNetwork; bool mTmpVisible; diff --git a/tmw.cbp b/tmw.cbp index 5943f74e..32f2e977 100644 --- a/tmw.cbp +++ b/tmw.cbp @@ -325,6 +325,8 @@ + + @@ -334,6 +336,8 @@ + + -- cgit v1.2.3-60-g2f50 From 406bac35e4c6e79b0ba8d5fe97f32516c8becb0b Mon Sep 17 00:00:00 2001 From: Eugenio Favalli Date: Thu, 10 Jul 2008 17:10:09 +0000 Subject: Restored executable icon. --- ChangeLog | 4 + tmw.cbp | 576 +++++++++++++++++++++++++++++++------------------------------- 2 files changed, 291 insertions(+), 289 deletions(-) diff --git a/ChangeLog b/ChangeLog index 59956b69..5cd053b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-07-10 Eugenio Favalli + + * tmw.cbp: Restored executable icon. + 2008-07-08 David Athay * src/gui/chat.cpp, src/gui/chat.h: Mantis #359 patch by Scraggy. diff --git a/tmw.cbp b/tmw.cbp index 32f2e977..9c009766 100644 --- a/tmw.cbp +++ b/tmw.cbp @@ -44,7 +44,7 @@ - + @@ -66,297 +66,295 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + -- cgit v1.2.3-60-g2f50 From ea37ffc6d73bb0de686c29f8e8c6769f2a704ec5 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 17 Jul 2008 22:52:53 +0000 Subject: Added support for handling the custom eAthena packet that sends the update host (patch by Sanga). --- ChangeLog | 7 +++ src/gui/char_server.cpp | 12 +++-- src/gui/char_server.h | 3 +- src/logindata.h | 1 + src/main.cpp | 114 +++++++++++++++++++++++++++-------------------- src/net/loginhandler.cpp | 14 +++++- src/net/loginhandler.h | 4 +- src/net/network.cpp | 2 +- src/net/protocol.h | 1 + src/serverinfo.h | 1 + 10 files changed, 102 insertions(+), 57 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5cd053b2..d7d47e54 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-07-16 Lloyd Bryant + + * src/logindata.h, src/gui/char_server.cpp, src/gui/char_server.h, + src/serverinfo.h, src/main.cpp, src/net/loginhandler.cpp, + src/net/loginhandler.h, src/net/network.cpp: Added support for + handling the custom eAthena packet that sends the update host. + 2008-07-10 Eugenio Favalli * tmw.cbp: Restored executable icon. diff --git a/src/gui/char_server.cpp b/src/gui/char_server.cpp index 638c05a6..b5ce9021 100644 --- a/src/gui/char_server.cpp +++ b/src/gui/char_server.cpp @@ -48,8 +48,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); @@ -105,10 +107,12 @@ ServerSelectDialog::action(const gcn::ActionEvent &event) const SERVER_INFO *si = server_info[mServerList->getSelected()]; mLoginData->hostname = iptostring(si->address); mLoginData->port = si->port; - state = CHAR_CONNECT_STATE; + mLoginData->updateHost = si->updateHost; + + state = mNextState; } else if (event.getId() == "cancel") { - state = LOADDATA_STATE; + state = LOGIN_STATE; } } diff --git a/src/gui/char_server.h b/src/gui/char_server.h index 26e723f9..3e43dd55 100644 --- a/src/gui/char_server.h +++ b/src/gui/char_server.h @@ -46,7 +46,7 @@ class ServerSelectDialog : public Window, public gcn::ActionListener { * * @see Window::Window */ - ServerSelectDialog(LoginData *loginData); + ServerSelectDialog(LoginData *loginData, int nextState); /** * Destructor. @@ -63,6 +63,7 @@ class ServerSelectDialog : public Window, public gcn::ActionListener { ServerListModel *mServerListModel; gcn::ListBox *mServerList; gcn::Button *mOkButton; + int mNextState; }; #endif diff --git a/src/logindata.h b/src/logindata.h index 8513428f..a2e3f9f1 100644 --- a/src/logindata.h +++ b/src/logindata.h @@ -31,6 +31,7 @@ struct LoginData std::string username; std::string password; std::string hostname; + std::string updateHost; short port; int account_ID; diff --git a/src/main.cpp b/src/main.cpp index 7a854123..e13ee390 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -150,6 +150,48 @@ struct Options std::string updateHost; }; +/** + * Parse the update host and determine the updates directory + * Then verify that the directory exists (creating if needed). + */ +void setUpdatesDir() +{ + // If updatesHost is currently empty, fill it from config file + if (updateHost.empty()) { + updateHost = + config.getValue("updatehost", "http://updates.thanaworld.org"); + } + + // Parse out any "http://" or "ftp://", and set the updates directory + size_t pos; + pos = updateHost.find("://"); + if (pos != updateHost.npos) { + if (pos + 3 < updateHost.length()) { + updatesDir = + "updates/" + updateHost.substr(pos + 3); + } else { + logger->log("Error: Invalid update host: %s", updateHost.c_str()); + errorMessage = "Invalid update host: " + updateHost; + state = ERROR_STATE; + } + } else { + logger->log("Warning: no protocol was specified for the update host"); + updatesDir = "updates/" + updateHost; + } + + ResourceManager *resman = ResourceManager::getInstance(); + + // Verify that the updates directory exists. Create if necessary. + if (!resman->isDirectory("/" + updatesDir)) { + if (!resman->mkdir("/" + updatesDir)) { + logger->log("Error: %s/%s can't be made, but doesn't exist!", + homeDir.c_str(), updatesDir.c_str()); + errorMessage = "Error creating updates directory!"; + state = ERROR_STATE; + } + } +} + /** * Do all initialization stuff */ @@ -272,44 +314,6 @@ void init_engine(const Options &options) config.init(configPath); } - - // Take host for updates from config if it wasn't set on the command line - if (options.updateHost.empty()) { - updateHost = - config.getValue("updatehost", "http://updates.thanaworld.org"); - } else { - updateHost = options.updateHost; - } - - // Parse out any "http://" or "ftp://", and set the updates directory - size_t pos; - pos = updateHost.find("//"); - if (pos != updateHost.npos) { - if (pos + 2 < updateHost.length()) { - updatesDir = - "updates/" + updateHost.substr(pos + 2); - } else { - std::cout << "The updates host - " << updateHost - << " does not appear to be valid!" << std::endl - << "Please fix the \"updatehost\" in your configuration" - << " file. Exiting." << std::endl; - exit(1); - } - } else { - logger->log("Warning: no protocol was specified for the update host"); - updatesDir = "updates/" + updateHost; - } - - // Verify that the updates directory exists. Create if necessary. - if (!resman->isDirectory("/" + updatesDir)) { - if (!resman->mkdir("/" + updatesDir)) { - std::cout << homeDir << "/" << updatesDir - << " can't be made, but it doesn't exist! Exiting." - << std::endl; - exit(1); - } - } - SDL_WM_SetCaption("The Mana World", NULL); #ifdef WIN32 static SDL_SysWMinfo pInfo; @@ -363,7 +367,7 @@ void init_engine(const Options &options) itemShortcut = new ItemShortcut(); gui = new Gui(graphics); - state = UPDATE_STATE; /**< Initial game state */ + state = LOGIN_STATE; /**< Initial game state */ // Initialize sound engine try { @@ -541,7 +545,14 @@ void accountLogin(Network *network, LoginData *loginData) outMsg.writeInt32(0); // client version outMsg.writeString(loginData->username, 24); outMsg.writeString(loginData->password, 24); - outMsg.writeInt8(0); // unknown + + /* + * 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); // Clear the password, avoids auto login when returning to login loginData->password = ""; @@ -648,13 +659,6 @@ int main(int argc, char *argv[]) SDL_Event event; - if (options.skipUpdate && state != ERROR_STATE) { - state = LOADDATA_STATE; - } - else { - state = UPDATE_STATE; - } - unsigned int oldstate = !state; // We start with a status change. Game *game = NULL; @@ -797,7 +801,7 @@ int main(int argc, char *argv[]) ItemDB::load(); MonsterDB::load(); NPCDB::load(); - state = LOGIN_STATE; + state = CHAR_CONNECT_STATE; break; case LOGIN_STATE: @@ -818,7 +822,12 @@ int main(int argc, char *argv[]) case CHAR_SERVER_STATE: logger->log("State: CHAR_SERVER"); - currentDialog = new ServerSelectDialog(&loginData); + { + int nextState = (options.skipUpdate) ? + LOADDATA_STATE : UPDATE_STATE; + currentDialog = new ServerSelectDialog(&loginData, + nextState); + } if (options.chooseDefault || options.playername != "") { ((ServerSelectDialog*) currentDialog)->action( gcn::ActionEvent(NULL, "ok")); @@ -865,6 +874,13 @@ int main(int argc, char *argv[]) break; case UPDATE_STATE: + // Determine which source to use for the update host + if (!options.updateHost.empty()) + updateHost = options.updateHost; + else + updateHost = loginData.updateHost; + + setUpdatesDir(); logger->log("State: UPDATE"); currentDialog = new UpdaterWindow(updateHost, homeDir + "/" + updatesDir); diff --git a/src/net/loginhandler.cpp b/src/net/loginhandler.cpp index ab788e41..8b057afd 100644 --- a/src/net/loginhandler.cpp +++ b/src/net/loginhandler.cpp @@ -37,6 +37,7 @@ extern SERVER_INFO **server_info; LoginHandler::LoginHandler() { static const Uint16 _messages[] = { + SMSG_UPDATE_HOST, 0x0069, 0x006a, 0 @@ -48,6 +49,16 @@ void LoginHandler::handleMessage(MessageIn *msg) { switch (msg->getId()) { + case 0x0063: + int len; + + len = msg->readInt16() - 4; + mUpdateHost = msg->readString(len); + + logger->log("Received update host \"%s\" from login server", + mUpdateHost.c_str()); + break; + case 0x0069: // Skip the length word msg->skip(2); @@ -70,6 +81,7 @@ void LoginHandler::handleMessage(MessageIn *msg) server_info[i]->port = msg->readInt16(); server_info[i]->name = msg->readString(20); server_info[i]->online_users = msg->readInt32(); + server_info[i]->updateHost = mUpdateHost; msg->skip(2); // unknown logger->log("Network: Server: %s (%s:%d)", @@ -77,7 +89,7 @@ void LoginHandler::handleMessage(MessageIn *msg) iptostring(server_info[i]->address), server_info[i]->port); } - state = CHAR_SERVER_STATE; + state = CHAR_SERVER_STATE; break; case 0x006a: diff --git a/src/net/loginhandler.h b/src/net/loginhandler.h index 52014559..86c1b609 100644 --- a/src/net/loginhandler.h +++ b/src/net/loginhandler.h @@ -25,6 +25,7 @@ #define _TMW_NET_LOGINHANDLER_H #include "messagehandler.h" +#include struct LoginData; @@ -37,8 +38,9 @@ class LoginHandler : public MessageHandler void setLoginData(LoginData *loginData) { mLoginData = loginData; }; - protected: + private: LoginData *mLoginData; + std::string mUpdateHost; }; #endif diff --git a/src/net/network.cpp b/src/net/network.cpp index fa5964d6..375d93e0 100644 --- a/src/net/network.cpp +++ b/src/net/network.cpp @@ -41,7 +41,7 @@ short packet_lengths[] = { // #0x0040 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 55, 17, 3, 37, 46, -1, 23, -1, 3,108, 3, 2, + 0, 0, 0, -1, 55, 17, 3, 37, 46, -1, 23, -1, 3,108, 3, 2, 3, 28, 19, 11, 3, -1, 9, 5, 54, 53, 58, 60, 41, 2, 6, 6, // #0x0080 7, 3, 2, 2, 2, 5, 16, 12, 10, 7, 29, 23, -1, -1, -1, 0, diff --git a/src/net/protocol.h b/src/net/protocol.h index 811d5481..eb41a9ac 100644 --- a/src/net/protocol.h +++ b/src/net/protocol.h @@ -26,6 +26,7 @@ // Packets from server to client #define SMSG_LOGIN_SUCCESS 0x0073 /**< Contains starting location */ +#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/serverinfo.h b/src/serverinfo.h index b317b87b..4f527128 100644 --- a/src/serverinfo.h +++ b/src/serverinfo.h @@ -32,6 +32,7 @@ struct SERVER_INFO short port; std::string name; short online_users; + std::string updateHost; }; #endif -- cgit v1.2.3-60-g2f50 From c8db8fbd71727b601172225f81c6198dc96d57db Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 17 Jul 2008 23:08:17 +0000 Subject: Remove possible trailing slash at the end of the update host, since otherwise there'll be two of them. --- ChangeLog | 5 +++++ src/main.cpp | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index d7d47e54..30665053 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-07-18 Bjørn Lindeijer + + * src/main.cpp: Remove possible trailing slash at the end of the + update host, since otherwise there'll be two of them. + 2008-07-16 Lloyd Bryant * src/logindata.h, src/gui/char_server.cpp, src/gui/char_server.h, diff --git a/src/main.cpp b/src/main.cpp index e13ee390..bc3d5449 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -162,6 +162,10 @@ void setUpdatesDir() config.getValue("updatehost", "http://updates.thanaworld.org"); } + // 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("://"); -- cgit v1.2.3-60-g2f50 From 7531e86b5c84c66fc7e46391a133accfb51b0141 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 19 Jul 2008 12:01:58 +0000 Subject: Updated NEWS file with changes since 0.0.24.1 --- NEWS | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/NEWS b/NEWS index d45eb89b..a13b9174 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,20 @@ +0.0.25 (...) +- 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 +- 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 0.0.24.1 (7 April 2008) - Added /clear command to clear chat window -- cgit v1.2.3-60-g2f50 From 157fbba039dc8ee0f7ed414791c72277aaf80831 Mon Sep 17 00:00:00 2001 From: David Athay Date: Mon, 21 Jul 2008 16:49:22 +0000 Subject: Commit of Alt-Gr fix for Rotonen --- ChangeLog | 5 +++++ src/game.cpp | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 30665053..e2a3abfa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-07-21 David Athay + + * src/game.cpp: Initial attempt at fixing Alt-Gr issue for Rotonen, + this commit is just for him! + 2008-07-18 Bjørn Lindeijer * src/main.cpp: Remove possible trailing slash at the end of the diff --git a/src/game.cpp b/src/game.cpp index 58c28640..0c855669 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -465,7 +465,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_ALT && event.key.keysym.mod ^ KMOD_CTRL) #else if (event.key.keysym.mod & KMOD_LMETA) #endif -- cgit v1.2.3-60-g2f50 From 93459202b58b6199e588b5c6768ef8889aa2aa9f Mon Sep 17 00:00:00 2001 From: David Athay Date: Tue, 22 Jul 2008 14:50:19 +0000 Subject: Reverted the Alt-Gr fix as it did not work. --- ChangeLog | 4 ++++ src/game.cpp | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index e2a3abfa..2fddc422 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-07-22 David Athay + + * src/game.cpp: Revert the Alt-Gr fix as it did not work. + 2008-07-21 David Athay * src/game.cpp: Initial attempt at fixing Alt-Gr issue for Rotonen, diff --git a/src/game.cpp b/src/game.cpp index 0c855669..8961c859 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -465,7 +465,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 && event.key.keysym.mod ^ KMOD_CTRL) + if (event.key.keysym.mod & KMOD_LALT) #else if (event.key.keysym.mod & KMOD_LMETA) #endif -- cgit v1.2.3-60-g2f50 From c17120c9838665fd546c6ae7a1d81de79659d429 Mon Sep 17 00:00:00 2001 From: David Athay Date: Tue, 22 Jul 2008 15:26:00 +0000 Subject: User can now configure which modifier key is used for smilies. --- ChangeLog | 2 ++ src/game.cpp | 5 +++++ src/keyboardconfig.cpp | 1 + src/keyboardconfig.h | 1 + 4 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index 2fddc422..d7ca07cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,8 @@ 2008-07-22 David Athay * src/game.cpp: Revert the Alt-Gr fix as it did not work. + * src/game.cpp, src/keyboardconfig.cpp, src/keyboardconfig.h: User can + now configure which modifier key is used for smilies. 2008-07-21 David Athay diff --git a/src/game.cpp b/src/game.cpp index 8961c859..cc37fc5a 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -511,7 +511,11 @@ void Game::handleInput() used = true; break; } + } + // Smilie + if (keyboard.isKeyActive(keyboard.KEY_SMILIE)) + { // Emotions Uint8 emotion; switch (event.key.keysym.sym) @@ -535,6 +539,7 @@ void Game::handleInput() { player_node->emote(emotion); used = true; + return; } } switch (event.key.keysym.sym) diff --git a/src/keyboardconfig.cpp b/src/keyboardconfig.cpp index a959e244..9f558883 100644 --- a/src/keyboardconfig.cpp +++ b/src/keyboardconfig.cpp @@ -43,6 +43,7 @@ static KeyData const keyData[KeyboardConfig::KEY_TOTAL] = { {"keyMoveLeft", SDLK_LEFT, "Move Left"}, {"keyMoveRight", SDLK_RIGHT, "Move Right"}, {"keyAttack", SDLK_LCTRL, "Attack"}, + {"keySmilie", SDLK_LALT, "Smilie"}, {"keyTarget", SDLK_LSHIFT, "Target"}, {"keyTargetClosest", SDLK_a, "Target Closest"}, {"keyTargetPlayer", SDLK_q, "Target Player"}, diff --git a/src/keyboardconfig.h b/src/keyboardconfig.h index 53a5c96d..b57136dc 100644 --- a/src/keyboardconfig.h +++ b/src/keyboardconfig.h @@ -151,6 +151,7 @@ class KeyboardConfig KEY_MOVE_LEFT, KEY_MOVE_RIGHT, KEY_ATTACK, + KEY_SMILIE, KEY_TARGET, KEY_TARGET_CLOSEST, KEY_TARGET_PLAYER, -- cgit v1.2.3-60-g2f50 From 88af5cb15a02a26f4a5990ba3ef4df46e572bff4 Mon Sep 17 00:00:00 2001 From: Eugenio Favalli Date: Wed, 23 Jul 2008 17:23:30 +0000 Subject: Remember windows visibility. --- src/game.cpp | 13 +++++++++---- src/gui/buy.cpp | 1 + src/gui/itemshortcutwindow.cpp | 2 +- src/gui/sell.cpp | 1 + src/gui/window.cpp | 2 ++ 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/game.cpp b/src/game.cpp index cc37fc5a..3489257a 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -212,10 +212,15 @@ void createGuiWindows(Network *network) //buddyWindow->setPosition(10, minimap->getHeight() + 30); // Set initial window visibility - chatWindow->setVisible(true); - miniStatusWindow->setVisible(true); - menuWindow->setVisible(true); - itemShortcutWindow->setVisible(true); + chatWindow->setVisible((bool) config.getValue( + chatWindow->getWindowName() + "Visible", true)); + miniStatusWindow->setVisible((bool) config.getValue( + miniStatusWindow->getWindowName() + "Visible", + true)); + menuWindow->setVisible((bool) config.getValue( + menuWindow->getWindowName() + "Visible", true)); + itemShortcutWindow->setVisible((bool) config.getValue( + itemShortcutWindow->getWindowName() + "Visible", true)); if (config.getValue("logToChat", 0)) { diff --git a/src/gui/buy.cpp b/src/gui/buy.cpp index 259fcfd9..4dee6813 100644 --- a/src/gui/buy.cpp +++ b/src/gui/buy.cpp @@ -42,6 +42,7 @@ BuyDialog::BuyDialog(Network *network): Window("Buy"), mNetwork(network), mMoney(0), mAmountItems(0), mMaxItems(0) { + setWindowName("Buy"); setResizable(true); setMinWidth(260); setMinHeight(230); diff --git a/src/gui/itemshortcutwindow.cpp b/src/gui/itemshortcutwindow.cpp index 3724516a..de1a23a1 100644 --- a/src/gui/itemshortcutwindow.cpp +++ b/src/gui/itemshortcutwindow.cpp @@ -30,7 +30,7 @@ static const int SCROLL_PADDING = 0; ItemShortcutWindow::ItemShortcutWindow() { - setWindowName("itemShortcut"); + setWindowName("ItemShortcut"); // no title presented, title bar is padding so window can be moved. gcn::Window::setTitleBarHeight(gcn::Window::getPadding()); setShowTitle(false); diff --git a/src/gui/sell.cpp b/src/gui/sell.cpp index 82d340fb..d13be2db 100644 --- a/src/gui/sell.cpp +++ b/src/gui/sell.cpp @@ -48,6 +48,7 @@ SellDialog::SellDialog(Network *network): mNetwork(network), mMaxItems(0), mAmountItems(0) { + setWindowName("Sell"); setResizable(true); setMinWidth(260); setMinHeight(230); diff --git a/src/gui/window.cpp b/src/gui/window.cpp index 4ce167cd..1c5072f5 100644 --- a/src/gui/window.cpp +++ b/src/gui/window.cpp @@ -137,6 +137,7 @@ Window::~Window() // Saving X, Y and Width and Height for resizables in the config config.setValue(name + "WinX", getX()); config.setValue(name + "WinY", getY()); + config.setValue(name + "Visible", isVisible()); if (mGrip) { @@ -476,6 +477,7 @@ Window::loadWindowState() setPosition((int) config.getValue(name + "WinX", mDefaultX), (int) config.getValue(name + "WinY", mDefaultY)); + setVisible((bool) config.getValue(name + "Visible", false)); if (mGrip) { -- cgit v1.2.3-60-g2f50 From a053adab8d6d0fa2f2cb3899de16513a180f622c Mon Sep 17 00:00:00 2001 From: Eugenio Favalli Date: Wed, 23 Jul 2008 18:46:38 +0000 Subject: Changelog was left out --- ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ChangeLog b/ChangeLog index d7ca07cd..806ef62d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-07-23 Eugenio Favalli + + * src/game.cpp, src/gui/buy.cpp, src/gui/itemshortcutwindow.cpp, + src/gui/sell.cpp, src/gui/window.cpp: Remember windows visibility. + 2008-07-22 David Athay * src/game.cpp: Revert the Alt-Gr fix as it did not work. -- cgit v1.2.3-60-g2f50 From 19ee623c0a1fdd333ef5b945ea887c983c829b1e Mon Sep 17 00:00:00 2001 From: Eugenio Favalli Date: Thu, 24 Jul 2008 16:34:06 +0000 Subject: Fixed visibility of buy and sell dialogs. --- ChangeLog | 4 ++++ src/game.cpp | 2 ++ 2 files changed, 6 insertions(+) diff --git a/ChangeLog b/ChangeLog index 806ef62d..612624a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-07-24 Eugenio Favalli + + * src/game.cpp: Fixed visibility of buy and sell dialogs. + 2008-07-23 Eugenio Favalli * src/game.cpp, src/gui/buy.cpp, src/gui/itemshortcutwindow.cpp, diff --git a/src/game.cpp b/src/game.cpp index 3489257a..0773b8e7 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -217,6 +217,8 @@ void createGuiWindows(Network *network) miniStatusWindow->setVisible((bool) config.getValue( miniStatusWindow->getWindowName() + "Visible", true)); + buyDialog->setVisible(false); + sellDialog->setVisible(false); menuWindow->setVisible((bool) config.getValue( menuWindow->getWindowName() + "Visible", true)); itemShortcutWindow->setVisible((bool) config.getValue( -- cgit v1.2.3-60-g2f50 From d6f2cdf4da05482df874fedc24832735eb80c8fc Mon Sep 17 00:00:00 2001 From: Eugenio Favalli Date: Thu, 24 Jul 2008 17:04:42 +0000 Subject: Properly update price after buying. --- ChangeLog | 1 + src/gui/buy.cpp | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 612624a0..d5fd476a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 2008-07-24 Eugenio Favalli * src/game.cpp: Fixed visibility of buy and sell dialogs. + * src/gui/buy.cpp: Properly update price after buying. 2008-07-23 Eugenio Favalli diff --git a/src/gui/buy.cpp b/src/gui/buy.cpp index 4dee6813..c12e18b6 100644 --- a/src/gui/buy.cpp +++ b/src/gui/buy.cpp @@ -171,15 +171,15 @@ void BuyDialog::action(const gcn::ActionEvent &event) outMsg.writeInt16(mAmountItems); outMsg.writeInt16(mShopItems->at(selectedItem)->getId()); - // Reset selection - mAmountItems = 1; - mSlider->setValue(1); - mSlider->gcn::Slider::setScale(1, mMaxItems); - // Update money and adjust the max number of items that can be bought mMaxItems -= mAmountItems; setMoney(mMoney - mAmountItems * mShopItems->at(selectedItem)->getPrice()); + + // Reset selection + mAmountItems = 1; + mSlider->setValue(1); + mSlider->gcn::Slider::setScale(1, mMaxItems); } } -- cgit v1.2.3-60-g2f50 From e2d5312c793c3667213acd794dd4c5c5c49d9c75 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 25 Jul 2008 17:27:39 +0000 Subject: Updated the version to 0.0.25, release planned this Sunday. --- CMakeLists.txt | 2 +- ChangeLog | 6 ++++++ NEWS | 4 +++- README | 2 +- configure.ac | 2 +- data/help/changes.txt | 32 ++++++++++++++++++++------------ data/help/header.txt | 2 +- src/winver.h | 6 +++--- 8 files changed, 36 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 32bffc37..fd71e1b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT(TMW) -SET(VERSION 0.0.24.1) +SET(VERSION 0.0.25) # where to look for cmake modules SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake/Modules) diff --git a/ChangeLog b/ChangeLog index d5fd476a..aba67b37 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-07-25 Bjørn Lindeijer + + * src/winver.h, README, configure.ac, data/help/changes.txt, + data/help/header.txt, NEWS, CMakeLists.txt: Updated the version to + 0.0.25, release planned this Sunday. + 2008-07-24 Eugenio Favalli * src/game.cpp: Fixed visibility of buy and sell dialogs. diff --git a/NEWS b/NEWS index a13b9174..ca1286f1 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -0.0.25 (...) +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) @@ -9,12 +9,14 @@ - 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 4d9fe6af..3e2cca1d 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ THE MANA WORLD ============== - Version: 0.0.24.1 Date: 7/4/2007 + Version: 0.0.25 Date: 27/7/2008 Development team: - See AUTHORS file for a list diff --git a/configure.ac b/configure.ac index 6816c743..ddd47e40 100755 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ(2.59) -AC_INIT([The Mana World], [0.0.24.1], [elvenprogrammer@gmail.com], [tmw]) +AC_INIT([The Mana World], [0.0.25], [elvenprogrammer@gmail.com], [tmw]) AC_CONFIG_HEADERS([config.h:config.h.in]) AC_LANG_CPLUSPLUS diff --git a/data/help/changes.txt b/data/help/changes.txt index 8b47cc9c..fefa8bcb 100644 --- a/data/help/changes.txt +++ b/data/help/changes.txt @@ -3,6 +3,26 @@ ##3 === RECENT CHANGES === + 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 @@ -58,15 +78,3 @@ - Fixed error message when creating a new character fails - Fixed updating problem when using scrollwheel to change shop selection - 0.0.22.2 (17 February 2007) - - Updated to work with Guichan 0.6.1 - - Changed to new default server (server.themanaworld.org) - - Changed custom mouse cursor - - Fixed the issue where _M or _F is appended to the username - - Fixed problem with Cancel button in update dialog - - 0.0.22.1 (15 January 2007) - - Updated to work with Guichan 0.6.0 (older versions no longer supported) - - Fixed mouse coordinates in debug window - - Fixed clicking on GUI to cause the player to start walking sometimes - diff --git a/data/help/header.txt b/data/help/header.txt index 57e9f141..d41c5ff7 100644 --- a/data/help/header.txt +++ b/data/help/header.txt @@ -2,7 +2,7 @@ ##1 T H E M A N A W O R L D ##1 ========================================== - ##2Version:##6 0.0.24.1 ##2Date:##37 April 2008 + ##2Version:##6 0.0.25 ##2Date:##327 July 2008 ##2 Website: http://themanaworld.org diff --git a/src/winver.h b/src/winver.h index 52d90315..a276fde5 100644 --- a/src/winver.h +++ b/src/winver.h @@ -1,6 +1,6 @@ /* VERSION DEFINITIONS */ #define VER_MAJOR 0 #define VER_MINOR 0 -#define VER_RELEASE 24 -#define VER_BUILD 1 -#define PACKAGE_VERSION "0.0.24.1" +#define VER_RELEASE 25 +#define VER_BUILD 0 +#define PACKAGE_VERSION "0.0.25" -- cgit v1.2.3-60-g2f50 From a0a365b5e89896a40d6f30be29184506bdc6214d Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 25 Jul 2008 20:54:24 +0000 Subject: Added documentation for F8 to toggle shortcut window. --- ChangeLog | 2 ++ README | 1 + data/help/commands.txt | 1 + 3 files changed, 4 insertions(+) diff --git a/ChangeLog b/ChangeLog index aba67b37..f00986cc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,8 @@ * src/winver.h, README, configure.ac, data/help/changes.txt, data/help/header.txt, NEWS, CMakeLists.txt: Updated the version to 0.0.25, release planned this Sunday. + * README, data/help/commands.txt: Added documentation for F8 to toggle + shortcut window. 2008-07-24 Eugenio Favalli diff --git a/README b/README index 3e2cca1d..ea293a9e 100644 --- a/README +++ b/README @@ -46,6 +46,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 diff --git a/data/help/commands.txt b/data/help/commands.txt index 5cd9aee4..248841c7 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 -- cgit v1.2.3-60-g2f50 From ab74313ac96b5259f17555085f1fdb9780cd387c Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sun, 27 Jul 2008 16:28:37 +0000 Subject: Target the nearest monster on joystick button 3 Should be made configurable later (Mantis 151) --- ChangeLog | 4 ++++ src/game.cpp | 15 +++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index f00986cc..99c8d044 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-07-27 Bjørn Lindeijer + + * src/game.cpp: Target the nearest monster on joystick button 3. + 2008-07-25 Bjørn Lindeijer * src/winver.h, README, configure.ac, data/help/changes.txt, diff --git a/src/game.cpp b/src/game.cpp index 0773b8e7..37375ca2 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -810,12 +810,11 @@ void Game::handleInput() player_node->attack(target, newTarget); } - // Target the nearest player if 'q' is pressed - if ( keyboard.isKeyActive(keyboard.KEY_TARGET_PLAYER) ) - //if (keys[SDLK_q]) + // Target the nearest player + if (keyboard.isKeyActive(keyboard.KEY_TARGET_PLAYER)) { - Being *target = - beingManager->findNearestLivingBeing(player_node, 20, Being::PLAYER); + Being *target = beingManager->findNearestLivingBeing( + player_node, 20, Being::PLAYER); if (target) { @@ -823,9 +822,9 @@ void Game::handleInput() } } - // Target the nearest monster if 'a' pressed - if ( keyboard.isKeyActive(keyboard.KEY_TARGET_CLOSEST) ) - //if (keys[SDLK_a]) + // Target the nearest monster + if (keyboard.isKeyActive(keyboard.KEY_TARGET_CLOSEST) + || (joystick && joystick->buttonPressed(3))) { Being *target = beingManager->findNearestLivingBeing(x, y, 20, Being::MONSTER); -- cgit v1.2.3-60-g2f50 From d828b8c752fc285b26a4521c0718df5cfdc06f9d Mon Sep 17 00:00:00 2001 From: Dennis Friis Date: Mon, 4 Aug 2008 07:17:06 +0000 Subject: Fix typo in updatehost reported by Jaxad. --- ChangeLog | 4 ++++ src/main.cpp | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 99c8d044..c20a7190 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-08-04 Dennis Friis + + * src/main.cpp: Fix typo in updatehost reported by Jaxad. + 2008-07-27 Bjørn Lindeijer * src/game.cpp: Target the nearest monster on joystick button 3. diff --git a/src/main.cpp b/src/main.cpp index bc3d5449..25dbe127 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -159,7 +159,7 @@ void setUpdatesDir() // If updatesHost is currently empty, fill it from config file if (updateHost.empty()) { updateHost = - config.getValue("updatehost", "http://updates.thanaworld.org"); + config.getValue("updatehost", "http://updates.themanaworld.org"); } // Remove any trailing slash at the end of the update host -- cgit v1.2.3-60-g2f50 From d5bb76a134de27fd704cf2a76ad46df3026a8d0d Mon Sep 17 00:00:00 2001 From: David Athay Date: Tue, 5 Aug 2008 12:06:40 +0000 Subject: Fixed alignment (patch by Scraggy - Mantis #384) and spelling error. --- ChangeLog | 6 ++++++ src/gui/setup_video.cpp | 4 ++-- src/net/charserverhandler.cpp | 4 ++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index c20a7190..16267ef6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-08-05 David Athay + + * src/gui/setup_video.cpp, src/net/charserverhandler.cpp: Fixed + alignment issue with fps limit field (patch by Scraggy #384. Also + fixed small spelling error. + 2008-08-04 Dennis Friis * src/main.cpp: Fix typo in updatehost reported by Jaxad. diff --git a/src/gui/setup_video.cpp b/src/gui/setup_video.cpp index 97e4cdd6..5044bbb6 100644 --- a/src/gui/setup_video.cpp +++ b/src/gui/setup_video.cpp @@ -192,7 +192,7 @@ Setup_Video::Setup_Video(): mScrollRadiusSlider->setDimension(gcn::Rectangle(10, 120, 75, 10)); gcn::Label *scrollRadiusLabel = new gcn::Label("Scroll radius"); scrollRadiusLabel->setPosition(90, 120); - mScrollRadiusField->setPosition(180, 120); + mScrollRadiusField->setPosition(mFpsField->getX(), 120); mScrollRadiusField->setWidth(30); mScrollRadiusField->setText(toString(mOriginalScrollRadius)); mScrollRadiusSlider->setValue(mOriginalScrollRadius); @@ -200,7 +200,7 @@ Setup_Video::Setup_Video(): mScrollLazinessSlider->setDimension(gcn::Rectangle(10, 140, 75, 10)); gcn::Label *scrollLazinessLabel = new gcn::Label("Scroll laziness"); scrollLazinessLabel->setPosition(90, 140); - mScrollLazinessField->setPosition(180, 140); + mScrollLazinessField->setPosition(mFpsField->getX(), 140); mScrollLazinessField->setWidth(30); mScrollLazinessField->setText(toString(mOriginalScrollLaziness)); mScrollLazinessSlider->setValue(mOriginalScrollLaziness); diff --git a/src/net/charserverhandler.cpp b/src/net/charserverhandler.cpp index 5cc53f7d..c49c7640 100644 --- a/src/net/charserverhandler.cpp +++ b/src/net/charserverhandler.cpp @@ -169,7 +169,7 @@ void CharServerHandler::handleMessage(MessageIn *msg) errorMessage = "Duplicated login"; break; default: - errorMessage = "Unkown error with 0x0081"; + errorMessage = "Unknown error with 0x0081"; break; } mCharInfo->unlock(); @@ -208,7 +208,7 @@ LocalPlayer* CharServerHandler::readPlayerData(MessageIn &msg, int &slot) tempPlayer->mLevel = msg.readInt16(); msg.readInt16(); // skill point tempPlayer->setSprite(Being::BOTTOMCLOTHES_SPRITE, msg.readInt16()); // head bottom - tempPlayer->setSprite(Being::SHIELD_SPRITE, msg.readInt16()); + tempPlayer->setSprite(Being::SHIELD_SPRITE, msg.readInt16()); tempPlayer->setSprite(Being::HAT_SPRITE, msg.readInt16()); // head option top tempPlayer->setSprite(Being::TOPCLOTHES_SPRITE, msg.readInt16()); // head option mid int hairColor = msg.readInt16(); -- cgit v1.2.3-60-g2f50 From 1df0f995cbcafa24a9312c25aa7c24fe910ed54c Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Wed, 6 Aug 2008 19:43:58 +0000 Subject: Make sure only to save the window state when a window name is set, and fail when loadWindowState() is called without setting a window name. --- ChangeLog | 6 ++++++ src/gui/window.cpp | 19 +++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 16267ef6..21d6ddd4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-08-06 Bjørn Lindeijer + + * src/gui/window.cpp: Make sure only to save the window state when a + window name is set, and fail when loadWindowState() is called without + setting a window name. + 2008-08-05 David Athay * src/gui/setup_video.cpp, src/net/charserverhandler.cpp: Fixed diff --git a/src/gui/window.cpp b/src/gui/window.cpp index 1c5072f5..ee8aca64 100644 --- a/src/gui/window.cpp +++ b/src/gui/window.cpp @@ -23,6 +23,7 @@ #include #include +#include #include #include @@ -135,14 +136,15 @@ Window::~Window() const std::string &name = mWindowName; // Saving X, Y and Width and Height for resizables in the config - config.setValue(name + "WinX", getX()); - config.setValue(name + "WinY", getY()); - config.setValue(name + "Visible", isVisible()); - - if (mGrip) - { - config.setValue(name + "WinWidth", getWidth()); - config.setValue(name + "WinHeight", getHeight()); + if (!name.empty()) { + config.setValue(name + "WinX", getX()); + config.setValue(name + "WinY", getY()); + config.setValue(name + "Visible", isVisible()); + + if (mGrip) { + config.setValue(name + "WinWidth", getWidth()); + config.setValue(name + "WinHeight", getHeight()); + } } instances--; @@ -474,6 +476,7 @@ void Window::loadWindowState() { const std::string &name = mWindowName; + assert(!name.empty()); setPosition((int) config.getValue(name + "WinX", mDefaultX), (int) config.getValue(name + "WinY", mDefaultY)); -- cgit v1.2.3-60-g2f50 From 8493ae0b217435977d917976c5c1b959953b895c Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Sun, 10 Aug 2008 15:54:48 +0000 Subject: fixed some compilation problems reported by Jaxad, updated project file to new code::blocks format. --- tools/tmxcopy/map.cpp | 2 + tools/tmxcopy/tmxcopy.cbp | 110 +++++++++++++--------------------------------- 2 files changed, 33 insertions(+), 79 deletions(-) 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 #include #include #include @@ -250,6 +251,7 @@ bool Map::overwrite( Map* srcMap, } std::clog<<"copying successful!"< - + - + - -- cgit v1.2.3-60-g2f50 From 73d4611c036b57549fa33aabfadb8ec528ad2d45 Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Sun, 24 Aug 2008 18:52:00 +0000 Subject: Added new particle emitter property "output-pause" which allows to define a fixed (or random) interval between two outputs. --- ChangeLog | 6 ++++++ src/particleemitter.cpp | 16 +++++++++++++++- src/particleemitter.h | 2 ++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 21d6ddd4..ba35af26 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-08-24 Philipp Sehmisch + + * src/particleemitter.cpp, src/particleemitter.h: Added new particle + emitter property "output-pause" which allows to define a fixed (or random) + interval between two outputs. + 2008-08-06 Bjørn Lindeijer * src/gui/window.cpp: Make sure only to save the window state when a diff --git a/src/particleemitter.cpp b/src/particleemitter.cpp index 631ca228..1696a134 100644 --- a/src/particleemitter.cpp +++ b/src/particleemitter.cpp @@ -39,7 +39,8 @@ #define DEG_RAD_FACTOR 0.017453293f ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, Map *map): - mParticleImage(0) + mParticleImage(0), + mOutputPauseLeft(0) { mMap = map; mParticleTarget = target; @@ -62,6 +63,7 @@ ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, Map * mParticleFadeOut.set(0); mParticleFadeIn.set(0); mOutput.set(1); + mOutputPause.set(0); mParticleAlpha.set(1.0f); for_each_xml_child_node(propertyNode, emitterNode) @@ -135,6 +137,11 @@ ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, Map * mOutput = readMinMax(propertyNode, 0); mOutput.maxVal +=1; } + else if (name == "output-pause") + { + mOutputPause = readMinMax(propertyNode, 0); + mOutputPauseLeft = mOutputSkip.value(); + } else if (name == "acceleration") { mParticleAcceleration = readMinMax(propertyNode, 0.0f); @@ -308,6 +315,13 @@ ParticleEmitter::createParticles() { std::list newParticles; + if (mOutputPauseLeft > 0) + { + mOutputPauseLeft--; + return newParticles; + } + mOutputPauseLeft = mOutputPause.value(); + for (int i = mOutput.value(); i > 0; i--) { // Limit maximum particles diff --git a/src/particleemitter.h b/src/particleemitter.h index 2f45608d..c1365163 100644 --- a/src/particleemitter.h +++ b/src/particleemitter.h @@ -119,6 +119,8 @@ class ParticleEmitter Map *mMap; /**< Map the particles are spawned on */ MinMax mOutput; /**< Number of particles spawned per update */ + MinMax mOutputSkip; /**< Pause in frames between two spawns */ + int mOutputSkipPause; /* * Graphical representation of the particle -- cgit v1.2.3-60-g2f50 From 2cdb3c70b062014d9e96ff778c3bdee8796ecf5e Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Sun, 24 Aug 2008 18:58:39 +0000 Subject: fix for an error in the last commit --- src/particleemitter.cpp | 2 +- src/particleemitter.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/particleemitter.cpp b/src/particleemitter.cpp index 1696a134..b2cc16c7 100644 --- a/src/particleemitter.cpp +++ b/src/particleemitter.cpp @@ -140,7 +140,7 @@ ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, Map * else if (name == "output-pause") { mOutputPause = readMinMax(propertyNode, 0); - mOutputPauseLeft = mOutputSkip.value(); + mOutputPauseLeft = mOutputPause.value(); } else if (name == "acceleration") { diff --git a/src/particleemitter.h b/src/particleemitter.h index c1365163..54341018 100644 --- a/src/particleemitter.h +++ b/src/particleemitter.h @@ -119,8 +119,8 @@ class ParticleEmitter Map *mMap; /**< Map the particles are spawned on */ MinMax mOutput; /**< Number of particles spawned per update */ - MinMax mOutputSkip; /**< Pause in frames between two spawns */ - int mOutputSkipPause; + MinMax mOutputPause; /**< Pause in frames between two spawns */ + int mOutputPauseLeft; /* * Graphical representation of the particle -- cgit v1.2.3-60-g2f50 From a5d45f2fa5b0042e2d08a2bfed060dfb0417e75e Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Wed, 27 Aug 2008 18:48:13 +0000 Subject: Renamed "randomnes" to "randomness", so that it won't show up as part of Fate's patch. --- ChangeLog | 10 ++++++++-- src/particle.cpp | 10 +++++----- src/particle.h | 6 +++--- src/particleemitter.cpp | 14 +++++++------- src/particleemitter.h | 2 +- 5 files changed, 24 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index ba35af26..a3ed1f12 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,14 @@ +2008-08-27 Bjørn Lindeijer + + * src/particleemitter.h, src/particle.h, src/particleemitter.cpp, + src/particle.cpp: Renamed "randomnes" to "randomness", so that it + won't show up as part of Fate's patch. + 2008-08-24 Philipp Sehmisch * src/particleemitter.cpp, src/particleemitter.h: Added new particle - emitter property "output-pause" which allows to define a fixed (or random) - interval between two outputs. + emitter property "output-pause" which allows to define a fixed (or + random) interval between two outputs. 2008-08-06 Bjørn Lindeijer diff --git a/src/particle.cpp b/src/particle.cpp index 3b3f5116..8591838f 100644 --- a/src/particle.cpp +++ b/src/particle.cpp @@ -61,7 +61,7 @@ Particle::Particle(Map *map): mAutoDelete(true), mMap(map), mGravity(0.0f), - mRandomnes(0), + mRandomness(0), mBounce(0.0f), mFollow(false), mTarget(NULL), @@ -139,11 +139,11 @@ Particle::update() } } - if (mRandomnes > 0) + if (mRandomness > 0) { - mVelocity.x += (rand()%mRandomnes - rand()%mRandomnes) / 1000.0f; - mVelocity.y += (rand()%mRandomnes - rand()%mRandomnes) / 1000.0f; - mVelocity.z += (rand()%mRandomnes - rand()%mRandomnes) / 1000.0f; + mVelocity.x += (rand()%mRandomness - rand()%mRandomness) / 1000.0f; + mVelocity.y += (rand()%mRandomness - rand()%mRandomness) / 1000.0f; + mVelocity.z += (rand()%mRandomness - rand()%mRandomness) / 1000.0f; } mVelocity.z -= mGravity; diff --git a/src/particle.h b/src/particle.h index 88a38417..d9b8c6b7 100644 --- a/src/particle.h +++ b/src/particle.h @@ -227,8 +227,8 @@ class Particle : public Sprite * Sets the ammount of random vector changes */ void - setRandomnes(int r) - { mRandomnes = r; } + setRandomness(int r) + { mRandomness = r; } /** * Sets the ammount of velocity particles retain after @@ -303,7 +303,7 @@ class Particle : public Sprite // dynamic particle Vector mVelocity; /**< Speed in pixels per game-tick. */ float mGravity; /**< Downward acceleration in pixels per game-tick. */ - int mRandomnes; /**< Ammount of random vector change */ + int mRandomness; /**< Ammount of random vector change */ float mBounce; /**< How much the particle bounces off when hitting the ground */ bool mFollow; /**< is this particle moved when its parent particle moves? */ diff --git a/src/particleemitter.cpp b/src/particleemitter.cpp index b2cc16c7..545936f0 100644 --- a/src/particleemitter.cpp +++ b/src/particleemitter.cpp @@ -39,8 +39,8 @@ #define DEG_RAD_FACTOR 0.017453293f ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, Map *map): - mParticleImage(0), - mOutputPauseLeft(0) + mOutputPauseLeft(0), + mParticleImage(0) { mMap = map; mParticleTarget = target; @@ -53,7 +53,7 @@ ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, Map * mParticleAngleVertical.set(0.0f); mParticlePower.set(0.0f); mParticleGravity.set(0.0f); - mParticleRandomnes.set(0); + mParticleRandomness.set(0); mParticleBounce.set(0.0f); mParticleFollow = false; mParticleAcceleration.set(0.0f); @@ -119,9 +119,9 @@ ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, Map * { mParticleGravity = readMinMax(propertyNode, 0.0f); } - else if (name == "randomnes") + else if (name == "randomnes" || name == "randomness") // legacy bug { - mParticleRandomnes = readMinMax(propertyNode, 0); + mParticleRandomness = readMinMax(propertyNode, 0); } else if (name == "bounce") { @@ -268,7 +268,7 @@ ParticleEmitter & ParticleEmitter::operator=(const ParticleEmitter &o) mParticleAngleVertical = o.mParticleAngleVertical; mParticlePower = o.mParticlePower; mParticleGravity = o.mParticleGravity; - mParticleRandomnes = o.mParticleRandomnes; + mParticleRandomness = o.mParticleRandomness; mParticleBounce = o.mParticleBounce; mParticleFollow = o.mParticleFollow; mParticleTarget = o.mParticleTarget; @@ -356,7 +356,7 @@ ParticleEmitter::createParticles() sin(angleH) * cos(angleV) * power, sin(angleV) * power); - newParticle->setRandomnes(mParticleRandomnes.value()); + newParticle->setRandomness(mParticleRandomness.value()); newParticle->setGravity(mParticleGravity.value()); newParticle->setBounce(mParticleBounce.value()); newParticle->setFollow(mParticleFollow); diff --git a/src/particleemitter.h b/src/particleemitter.h index 54341018..5cf3fd46 100644 --- a/src/particleemitter.h +++ b/src/particleemitter.h @@ -97,7 +97,7 @@ class ParticleEmitter * Vector changing of particles: */ MinMax mParticleGravity; - MinMax mParticleRandomnes; + MinMax mParticleRandomness; MinMax mParticleBounce; bool mParticleFollow; -- cgit v1.2.3-60-g2f50 From b98b6256262da9aafd9e8e1f93744db321d4d1ad Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Thu, 28 Aug 2008 13:36:33 +0000 Subject: Removed the usually incorrect "for 5 minutes" clause from the message displayed to banned users. --- ChangeLog | 5 +++++ src/net/loginhandler.cpp | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index a3ed1f12..66ed8d6d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-08-28 Philipp Sehmisch + + * src/net/loginhandler.cpp: Removed the usually incorrect "for 5 minutes" + clause from the message displayed to banned users. + 2008-08-27 Bjørn Lindeijer * src/particleemitter.h, src/particle.h, src/particleemitter.cpp, diff --git a/src/net/loginhandler.cpp b/src/net/loginhandler.cpp index 8b057afd..fa74f489 100644 --- a/src/net/loginhandler.cpp +++ b/src/net/loginhandler.cpp @@ -89,7 +89,7 @@ void LoginHandler::handleMessage(MessageIn *msg) iptostring(server_info[i]->address), server_info[i]->port); } - state = CHAR_SERVER_STATE; + state = CHAR_SERVER_STATE; break; case 0x006a: @@ -110,10 +110,10 @@ 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 banned from the game. Please contact the GM Team"; break; case 6: - errorMessage = "You have been banned for 5 minutes"; + errorMessage = "You have been temporarily banned from the game. Please contact the GM team"; break; case 9: errorMessage = "This user name is already taken"; -- cgit v1.2.3-60-g2f50 From b506fe0ff8a2039167aa7c349087af4dd03e1921 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 28 Aug 2008 18:01:15 +0000 Subject: Applied patch put together by Jaxad0127 with changes from the Aethyra project. Improves compatibility with the newer version of eAthena and works around an initialization bug. --- ChangeLog | 13 +++- src/being.h | 4 ++ src/game.cpp | 24 ++++++- src/net/beinghandler.cpp | 145 +++++++++++++++++++++++++++++++++++------- src/net/beinghandler.h | 6 +- src/net/charserverhandler.cpp | 7 +- src/net/playerhandler.cpp | 7 +- src/net/protocol.h | 5 ++ 8 files changed, 180 insertions(+), 31 deletions(-) diff --git a/ChangeLog b/ChangeLog index 66ed8d6d..ec86e312 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,16 @@ +2008-08-28 Bjørn Lindeijer + + * src/game.cpp, src/net/beinghandler.cpp, + src/net/charserverhandler.cpp, src/net/protocol.h, + src/net/beinghandler.h, src/net/playerhandler.cpp, src/being.h: + Applied patch put together by Jaxad0127 with changes from the Aethyra + project. Improves compatibility with the newer version of eAthena and + works around an initialization bug. + 2008-08-28 Philipp Sehmisch - * src/net/loginhandler.cpp: Removed the usually incorrect "for 5 minutes" - clause from the message displayed to banned users. + * src/net/loginhandler.cpp: Removed the usually incorrect "for 5 + minutes" clause from the message displayed to banned users. 2008-08-27 Bjørn Lindeijer diff --git a/src/being.h b/src/being.h index 5ea8c0be..046f7b9a 100644 --- a/src/being.h +++ b/src/being.h @@ -93,8 +93,12 @@ class Being : public Sprite SHOE_SPRITE, BOTTOMCLOTHES_SPRITE, TOPCLOTHES_SPRITE, + MISC1_SPRITE, + MISC2_SPRITE, HAIR_SPRITE, HAT_SPRITE, + CAPE_SPRITE, + GLOVES_SPRITE, WEAPON_SPRITE, SHIELD_SPRITE, VECTOREND_SPRITE diff --git a/src/game.cpp b/src/game.cpp index 37375ca2..aaf5242c 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -69,6 +69,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" @@ -80,6 +81,7 @@ #include "net/playerhandler.h" #include "net/skillhandler.h" #include "net/tradehandler.h" +#include "net/messageout.h" #include "resources/imagewriter.h" @@ -260,7 +262,7 @@ void destroyGuiWindows() Game::Game(Network *network): mNetwork(network), - mBeingHandler(new BeingHandler()), + mBeingHandler(new BeingHandler(config.getValue("EnableSync", 0) == 1)), mBuySellHandler(new BuySellHandler()), mChatHandler(new ChatHandler()), mEquipmentHandler(new EquipmentHandler()), @@ -291,7 +293,6 @@ Game::Game(Network *network): // Initialize beings beingManager->setPlayer(player_node); player_node->setNetwork(network); - engine->changeMap(map_path); Joystick::init(); // TODO: The user should be able to choose which one to use @@ -311,6 +312,25 @@ Game::Game(Network *network): network->registerHandler(mPlayerHandler.get()); network->registerHandler(mSkillHandler.get()); network->registerHandler(mTradeHandler.get()); + + /* + * THIS IS A TEMPORARY WORKAROUND! + * + * To prevent the server from sending data before the client has + * initialized, it's been modified to wait for a "ping" from the client to + * complete its initialization. + * + * The real fix is to make sure we are not throwing away messages in the + * network buffer due to not having registered the handlers above straight + * after receiving a login success from the map server. + * + * The response from eAthena on this packet is ignored by the client. + */ + MessageOut msg(mNetwork); + msg.writeInt16(CMSG_CLIENT_PING); + msg.writeInt32(tick_time); + + engine->changeMap(map_path); } Game::~Game() diff --git a/src/net/beinghandler.cpp b/src/net/beinghandler.cpp index be8412d9..c43c674f 100644 --- a/src/net/beinghandler.cpp +++ b/src/net/beinghandler.cpp @@ -40,11 +40,13 @@ const int EMOTION_TIME = 150; /**< Duration of emotion icon */ -BeingHandler::BeingHandler() +BeingHandler::BeingHandler(bool enableSync): + mSync(enableSync) { static const Uint16 _messages[] = { SMSG_BEING_VISIBLE, SMSG_BEING_MOVE, + SMSG_BEING_MOVE2, SMSG_BEING_REMOVE, SMSG_BEING_ACTION, SMSG_BEING_LEVELUP, @@ -55,6 +57,8 @@ BeingHandler::BeingHandler() SMSG_PLAYER_UPDATE_1, SMSG_PLAYER_UPDATE_2, SMSG_PLAYER_MOVE, + SMSG_PLAYER_STOP, + SMSG_PLAYER_MOVE_TO_ATTACK, 0x0119, 0 }; @@ -66,6 +70,8 @@ void BeingHandler::handleMessage(MessageIn *msg) Uint32 id; Uint16 job, speed; Uint16 headTop, headMid, headBottom; + Uint16 shoes, gloves, cape, misc1, misc2; + Uint16 weapon, shield; Sint16 param1; Sint8 type; Being *srcBeing, *dstBeing; @@ -78,8 +84,8 @@ void BeingHandler::handleMessage(MessageIn *msg) // Information about a being in range id = msg->readInt32(); speed = msg->readInt16(); - msg->readInt16(); // unknown - msg->readInt16(); // unknown + msg->readInt16(); // opt1 + msg->readInt16(); // opt2 msg->readInt16(); // option job = msg->readInt16(); // class @@ -122,8 +128,10 @@ void BeingHandler::handleMessage(MessageIn *msg) headTop = msg->readInt16(); headMid = msg->readInt16(); hairColor = msg->readInt16(); - msg->readInt16(); // clothes color -not used + msg->readInt16(); // clothes color - not used msg->readInt16(); // head dir + shoes = 0; + gloves = 0; msg->readInt16(); // guild msg->readInt16(); // unknown msg->readInt16(); // unknown @@ -133,9 +141,11 @@ void BeingHandler::handleMessage(MessageIn *msg) dstBeing->setGender(1 - msg->readInt8()); // gender // Set these after the gender, as the sprites may be gender-specific - dstBeing->setSprite(Being::BOTTOMCLOTHES_SPRITE, headBottom); - dstBeing->setSprite(Being::TOPCLOTHES_SPRITE, headMid); - dstBeing->setSprite(Being::HAT_SPRITE, headTop); + dstBeing->setSprite(Being::BOTTOMCLOTHES_SPRITE, headBottom); + dstBeing->setSprite(Being::TOPCLOTHES_SPRITE, headMid); + dstBeing->setSprite(Being::HAT_SPRITE, headTop); + dstBeing->setSprite(Being::SHOE_SPRITE, shoes); + dstBeing->setSprite(Being::GLOVES_SPRITE, gloves); dstBeing->setHairStyle(hairStyle, hairColor); if (msg->getId() == SMSG_BEING_MOVE) @@ -159,6 +169,33 @@ void BeingHandler::handleMessage(MessageIn *msg) msg->readInt8(); // unknown / sit break; + case SMSG_BEING_MOVE2: + /* + * A simplified movement packet, used by the + * later versions of eAthena for both mobs and + * players + */ + dstBeing = beingManager->findBeing(msg->readInt32()); + + Uint16 srcX, srcY, dstX, dstY; + msg->readCoordinatePair(srcX, srcY, dstX, dstY); + msg->readInt32(); // Server tick + + /* + * This packet doesn't have enough info to actually + * create a new being, so if the being isn't found, + * we'll just pretend the packet didn't happen + */ + + if (dstBeing) { + dstBeing->setAction(Being::STAND); + dstBeing->mX = srcX; + dstBeing->mY = srcY; + dstBeing->setDestination(dstX, dstY); + } + + break; + case SMSG_BEING_REMOVE: // A being should be removed or has died dstBeing = beingManager->findBeing(msg->readInt32()); @@ -166,6 +203,11 @@ void BeingHandler::handleMessage(MessageIn *msg) if (!dstBeing) break; + if (dstBeing == player_node->getTarget()) + { + player_node->stopAttack(); + } + if (msg->readInt8() == 1) { dstBeing->setAction(Being::DEAD); @@ -175,10 +217,6 @@ void BeingHandler::handleMessage(MessageIn *msg) beingManager->destroyBeing(dstBeing); } - if (dstBeing == player_node->getTarget()) - { - player_node->stopAttack(); - } break; case SMSG_BEING_ACTION: @@ -257,7 +295,7 @@ void BeingHandler::handleMessage(MessageIn *msg) case SMSG_BEING_CHANGE_LOOKS2: { /* - * SMSG_BEING_CHANGE_LOOKS (0x00c3) and + * SMSG_BEING_CHANGE_LOOKS (0x00c3) and * SMSG_BEING_CHANGE_LOOKS2 (0x01d7) do basically the same * thing. The difference is that ...LOOKS carries a single * 8 bit value, where ...LOOKS2 carries two 16 bit values. @@ -288,7 +326,7 @@ void BeingHandler::handleMessage(MessageIn *msg) case 1: // eAthena LOOK_HAIR dstBeing->setHairStyle(id, -1); break; - case 2: // Weapon ID in id, Shield ID in id2 + case 2: // Weapon ID in id, Shield ID in id2 dstBeing->setSprite(Being::WEAPON_SPRITE, id); dstBeing->setSprite(Being::SHIELD_SPRITE, id2); break; @@ -304,9 +342,24 @@ void BeingHandler::handleMessage(MessageIn *msg) case 6: // eAthena LOOK_HAIR_COLOR dstBeing->setHairStyle(-1, id); break; + case 8: // eAthena LOOK_SHIELD + dstBeing->setSprite(Being::SHIELD_SPRITE, id); + break; case 9: // eAthena LOOK_SHOES dstBeing->setSprite(Being::SHOE_SPRITE, id); break; + case 10: // LOOK_GLOVES + dstBeing->setSprite(Being::GLOVES_SPRITE, id); + break; + case 11: // LOOK_CAPE + dstBeing->setSprite(Being::CAPE_SPRITE, id); + break; + case 12: + dstBeing->setSprite(Being::MISC1_SPRITE, id); + break; + case 13: + dstBeing->setSprite(Being::MISC2_SPRITE, id); + break; default: logger->log("SMSG_BEING_CHANGE_LOOKS: unsupported type: " "%d, id: %d", type, id); @@ -328,9 +381,9 @@ void BeingHandler::handleMessage(MessageIn *msg) // An update about a player, potentially including movement. id = msg->readInt32(); speed = msg->readInt16(); - msg->readInt16(); // option 1 - msg->readInt16(); // option 2 - msg->readInt16(); // option + cape = msg->readInt16(); + misc1 = msg->readInt16(); + misc2 = msg->readInt16(); job = msg->readInt16(); dstBeing = beingManager->findBeing(id); @@ -343,9 +396,9 @@ void BeingHandler::handleMessage(MessageIn *msg) dstBeing->setWalkSpeed(speed); dstBeing->mJob = job; hairStyle = msg->readInt16(); - dstBeing->setSprite(Being::WEAPON_SPRITE, msg->readInt16()); - dstBeing->setSprite(Being::SHIELD_SPRITE, msg->readInt16()); - headBottom = msg->readInt16(); + weapon = msg->readInt16(); + shield = msg->readInt16(); + headBottom = msg->readInt16(); if (msg->getId() == SMSG_PLAYER_MOVE) { @@ -355,7 +408,9 @@ void BeingHandler::handleMessage(MessageIn *msg) headTop = msg->readInt16(); headMid = msg->readInt16(); hairColor = msg->readInt16(); - msg->readInt16(); // clothes color - not used + shoes = 0; + gloves = 0; + msg->readInt16(); // clothes color - not used msg->readInt16(); // head dir msg->readInt32(); // guild msg->readInt32(); // emblem @@ -364,9 +419,18 @@ void BeingHandler::handleMessage(MessageIn *msg) dstBeing->setGender(1 - msg->readInt8()); // gender // Set these after the gender, as the sprites may be gender-specific - dstBeing->setSprite(Being::BOTTOMCLOTHES_SPRITE, headBottom); + dstBeing->setSprite(Being::WEAPON_SPRITE, weapon); + dstBeing->setSprite(Being::SHIELD_SPRITE, shield); + dstBeing->setSprite(Being::BOTTOMCLOTHES_SPRITE, headBottom); dstBeing->setSprite(Being::TOPCLOTHES_SPRITE, headMid); dstBeing->setSprite(Being::HAT_SPRITE, headTop); + dstBeing->setSprite(Being::SHOE_SPRITE, shoes); + // Compensation for the unpatched TMW server + if (gloves > 10) + dstBeing->setSprite(Being::GLOVES_SPRITE, gloves); + dstBeing->setSprite(Being::CAPE_SPRITE, cape); + dstBeing->setSprite(Being::MISC1_SPRITE, misc1); + dstBeing->setSprite(Being::MISC2_SPRITE, misc2); dstBeing->setHairStyle(hairStyle, hairColor); if (msg->getId() == SMSG_PLAYER_MOVE) @@ -384,8 +448,7 @@ void BeingHandler::handleMessage(MessageIn *msg) dstBeing->setDirection(dir); } - msg->readInt8(); // unknown - msg->readInt8(); // unknown + msg->readInt16(); // GM status if (msg->getId() == SMSG_PLAYER_UPDATE_1) { @@ -406,6 +469,42 @@ void BeingHandler::handleMessage(MessageIn *msg) dstBeing->mFrame = 0; break; + case SMSG_PLAYER_STOP: + /* + * Instruction from server to stop walking at x, y. + * + * Some people like having this enabled. Others absolutely + * despise it. So I'm setting to so that it only affects the + * local player if the person has set a key "EnableSync" to "1" + * in their config.xml file. + * + * This packet will be honored for all other beings, regardless + * of the config setting. + */ + + id = msg->readInt32(); + if (mSync || id != player_node->getId()) { + dstBeing = beingManager->findBeing(id); + if (dstBeing) { + dstBeing->mX = msg->readInt16(); + dstBeing->mY = msg->readInt16(); + if (dstBeing->mAction == Being::WALK) { + dstBeing->mFrame = 0; + dstBeing->setAction(Being::STAND); + } + } + } + break; + + case SMSG_PLAYER_MOVE_TO_ATTACK: + /* + * This is an *advisory* message, telling the client that + * it needs to move the character before attacking + * a target (out of range, obstruction in line of fire). + * We can safely ignore this... + */ + break; + case 0x0119: // Change in players look logger->log("0x0119 %i %i %i %x %i", msg->readInt32(), diff --git a/src/net/beinghandler.h b/src/net/beinghandler.h index 03012f39..5d6d91a4 100644 --- a/src/net/beinghandler.h +++ b/src/net/beinghandler.h @@ -29,9 +29,13 @@ class BeingHandler : public MessageHandler { public: - BeingHandler(); + BeingHandler(bool); void handleMessage(MessageIn *msg); + + private: + // Should we honor server "Stop Walking" packets + bool mSync; }; #endif diff --git a/src/net/charserverhandler.cpp b/src/net/charserverhandler.cpp index c49c7640..baa841f4 100644 --- a/src/net/charserverhandler.cpp +++ b/src/net/charserverhandler.cpp @@ -191,7 +191,10 @@ LocalPlayer* CharServerHandler::readPlayerData(MessageIn &msg, int &slot) tempPlayer->mGp = msg.readInt32(); tempPlayer->mJobXp = msg.readInt32(); tempPlayer->mJobLevel = msg.readInt32(); - msg.skip(8); // unknown + tempPlayer->setSprite(Being::SHOE_SPRITE, msg.readInt16()); + tempPlayer->setSprite(Being::GLOVES_SPRITE, msg.readInt16()); + tempPlayer->setSprite(Being::CAPE_SPRITE, msg.readInt16()); + tempPlayer->setSprite(Being::MISC1_SPRITE, msg.readInt16()); msg.readInt32(); // option msg.readInt32(); // karma msg.readInt32(); // manner @@ -213,7 +216,7 @@ LocalPlayer* CharServerHandler::readPlayerData(MessageIn &msg, int &slot) tempPlayer->setSprite(Being::TOPCLOTHES_SPRITE, msg.readInt16()); // head option mid int hairColor = msg.readInt16(); tempPlayer->setHairStyle(hairStyle, hairColor); - msg.readInt16(); // unknown + tempPlayer->setSprite(Being::MISC2_SPRITE, msg.readInt16()); tempPlayer->setName(msg.readString(24)); for (int i = 0; i < 6; i++) { tempPlayer->mAttr[i] = msg.readInt8(); diff --git a/src/net/playerhandler.cpp b/src/net/playerhandler.cpp index 2502c144..463868db 100644 --- a/src/net/playerhandler.cpp +++ b/src/net/playerhandler.cpp @@ -123,6 +123,12 @@ void PlayerHandler::handleMessage(MessageIn *msg) logger->log("Warping to %s (%d, %d)", mapPath.c_str(), x, y); + /* + * We must clear the local player's target *before* the call + * to changeMap, as it deletes all beings. + */ + player_node->stopAttack(); + // Switch the actual map, deleting the previous one engine->changeMap(mapPath); @@ -132,7 +138,6 @@ void PlayerHandler::handleMessage(MessageIn *msg) float scrollOffsetY = (y - player_node->mY) * 32; player_node->setAction(Being::STAND); - player_node->stopAttack(); player_node->mFrame = 0; player_node->mX = x; player_node->mY = y; diff --git a/src/net/protocol.h b/src/net/protocol.h index eb41a9ac..a2aa50c3 100644 --- a/src/net/protocol.h +++ b/src/net/protocol.h @@ -30,6 +30,8 @@ #define SMSG_PLAYER_UPDATE_1 0x01d8 #define SMSG_PLAYER_UPDATE_2 0x01d9 #define SMSG_PLAYER_MOVE 0x01da /**< A nearby player moves */ +#define SMSG_PLAYER_STOP 0x0088 /**< Stop walking, set position */ +#define SMSG_PLAYER_MOVE_TO_ATTACK 0x0139 /**< Move to within attack range */ #define SMSG_PLAYER_STAT_UPDATE_1 0x00b0 #define SMSG_PLAYER_STAT_UPDATE_2 0x00b1 #define SMSG_PLAYER_STAT_UPDATE_3 0x0141 @@ -56,6 +58,8 @@ #define SMSG_ITEM_REMOVE 0x00a1 /**< An item disappers */ #define SMSG_BEING_VISIBLE 0x0078 #define SMSG_BEING_MOVE 0x007b /**< A nearby monster moves */ +#define SMSG_BEING_SPAWN 0x007c /**< A being spawns nearby */ +#define SMSG_BEING_MOVE2 0x0086 /**< New eAthena being moves */ #define SMSG_BEING_REMOVE 0x0080 #define SMSG_BEING_CHANGE_LOOKS 0x00c3 #define SMSG_BEING_CHANGE_LOOKS2 0x01d7 /**< Same as 0x00c3, but 16 bit ID */ @@ -87,6 +91,7 @@ #define SMSG_TRADE_COMPLETE 0x00f0 // Packets from client to server +#define CMSG_CLIENT_PING 0x007e /**< Send to server with tick */ #define CMSG_TRADE_RESPONSE 0x00e6 #define CMSG_ITEM_PICKUP 0x009f #define CMSG_MAP_LOADED 0x007d -- cgit v1.2.3-60-g2f50 From 566a6fb8d0fc35267b43721f7e1802ba3475af3d Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 28 Aug 2008 18:32:11 +0000 Subject: Added support for being effects through the eAthena levelup message, and check whether the being exists before referencing it. Re-enabled proper MP bar display. Improved handling of a warp to the same map. --- ChangeLog | 9 ++++ src/being.cpp | 103 +++++++++++++++++++++++++++++++++++++++++++++- src/being.h | 20 +++++++++ src/engine.cpp | 1 + src/engine.h | 5 +++ src/gui/ministatus.cpp | 2 +- src/net/beinghandler.cpp | 34 +++++++-------- src/net/playerhandler.cpp | 19 +++++++-- src/net/protocol.h | 2 +- src/particle.h | 9 ++++ src/player.h | 8 ++++ 11 files changed, 187 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index ec86e312..a5a11cf0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-08-28 Fate + + * src/engine.h, src/gui/ministatus.cpp, src/engine.cpp, + src/particle.h, src/being.cpp, src/player.h, src/net/beinghandler.cpp, + src/net/protocol.h, src/net/playerhandler.cpp, src/being.h: Added + support for being effects through the eAthena levelup message, and + check whether the being exists before referencing it. Re-enabled + proper MP bar display. Improved handling of a warp to the same map. + 2008-08-28 Bjørn Lindeijer * src/game.cpp, src/net/beinghandler.cpp, diff --git a/src/being.cpp b/src/being.cpp index 625b0eef..1880e7c0 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -32,6 +32,8 @@ #include "log.h" #include "map.h" #include "particle.h" +#include "sound.h" +#include "localplayer.h" #include "resources/resourcemanager.h" #include "resources/imageset.h" @@ -42,6 +44,10 @@ #include "utils/dtor.h" #include "utils/tostring.h" +#include "utils/xml.h" + +#define BEING_EFFECTS_FILE "effects.xml" + int Being::instances = 0; ImageSet *Being::emotionSet = NULL; @@ -386,7 +392,7 @@ Being::logic() ) { (*i)->setPosition((float)mPx + 16.0f, (float)mPy + 32.0f); - if (!(*i)->isAlive()) + if ((*i)->isExtinct()) { (*i)->kill(); i = mChildParticleEffects.erase(i); @@ -496,3 +502,98 @@ Being::getHeight() const return 0; } } + + + +struct EffectDescription { + std::string mGFXEffect; + std::string mSFXEffect; +}; + +static EffectDescription *default_effect = NULL; +static std::map effects; +static bool effects_initialized = false; + +static EffectDescription * +getEffectDescription(xmlNodePtr node, int *id) +{ + EffectDescription *ed = new EffectDescription; + + *id = atoi(XML::getProperty(node, "id", "-1").c_str()); + ed->mSFXEffect = XML::getProperty(node, "audio", ""); + ed->mGFXEffect = XML::getProperty(node, "particle", ""); + + return ed; +} + +static EffectDescription * +getEffectDescription(int effectId) +{ + if (!effects_initialized) + { + XML::Document doc(BEING_EFFECTS_FILE); + xmlNodePtr root = doc.rootNode(); + + if (!root || !xmlStrEqual(root->name, BAD_CAST "being-effects")) + { + logger->log("Error loading being effects file: " + BEING_EFFECTS_FILE); + return NULL; + } + + for_each_xml_child_node(node, root) + { + int id; + + if (xmlStrEqual(node->name, BAD_CAST "effect")) + { + EffectDescription *EffectDescription = + getEffectDescription(node, &id); + effects[id] = EffectDescription; + } else if (xmlStrEqual(node->name, BAD_CAST "default")) + { + EffectDescription *EffectDescription = + getEffectDescription(node, &id); + + if (default_effect) + delete default_effect; + + default_effect = EffectDescription; + } + } + + effects_initialized = true; + } // done initializing + + EffectDescription *ed = effects[effectId]; + + if (!ed) + return default_effect; + else + return ed; +} + +void +Being::internalTriggerEffect(int effectId, bool sfx, bool gfx) +{ + logger->log("Special effect #%d on %s", effectId, + getId() == player_node->getId() ? "self" : "other"); + + EffectDescription *ed = getEffectDescription(effectId); + + if (!ed) { + logger->log("Unknown special effect and no default recorded"); + return; + } + + if (gfx && ed->mGFXEffect != "") { + Particle *selfFX; + + selfFX = particleEngine->addEffect(ed->mGFXEffect, 0, 0); + controlParticle(selfFX); + } + + if (sfx && ed->mSFXEffect != "") { + sound.playSfx(ed->mSFXEffect); + } +} diff --git a/src/being.h b/src/being.h index 046f7b9a..c4f34503 100644 --- a/src/being.h +++ b/src/being.h @@ -365,6 +365,16 @@ class Being : public Sprite void setEmote(Uint8 emotion, Uint8 emote_time) { mEmotion = emotion; mEmotionTime = emote_time; } + /** + * Triggers a visual effect, such as `level up' + * + * Only draws the visual effect, does not play sound effects + * + * \param effectId ID of the effect to trigger + */ + virtual void + triggerEffect(int effectId) { internalTriggerEffect(effectId, false, true); } + const std::auto_ptr mEquipment; protected: @@ -378,6 +388,16 @@ class Being : public Sprite */ SpriteDirection getSpriteDirection() const; + /** + * Trigger visual effect, with components + * + * \param effectId ID of the effect to trigger + * \param sfx Whether to trigger sound effects + * \param gfx Whether to trigger graphical effects + */ + void + internalTriggerEffect(int effectId, bool sfx, bool gfx); + Uint32 mId; /**< Unique sprite id */ Uint16 mWalkSpeed; /**< Walking speed */ Uint8 mDirection; /**< Facing direction */ diff --git a/src/engine.cpp b/src/engine.cpp index d4033193..b53608be 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -120,6 +120,7 @@ void Engine::changeMap(const std::string &mapPath) } mCurrentMap = newMap; + mMapName = mapPath; // Send "map loaded" MessageOut outMsg(mNetwork); diff --git a/src/engine.h b/src/engine.h index 4575051e..52f1e63a 100644 --- a/src/engine.h +++ b/src/engine.h @@ -25,6 +25,7 @@ #define _ENGINE_H #include +#include class Map; class Network; @@ -51,6 +52,9 @@ class Engine */ Map *getCurrentMap() { return mCurrentMap; } + const std::string &getCurrentMapName() { return mMapName; } + + /** * Sets the currently active map. */ @@ -64,6 +68,7 @@ class Engine private: Map *mCurrentMap; Network *mNetwork; + std::string mMapName; }; extern Engine *engine; diff --git a/src/gui/ministatus.cpp b/src/gui/ministatus.cpp index 8f121368..077e2331 100644 --- a/src/gui/ministatus.cpp +++ b/src/gui/ministatus.cpp @@ -98,7 +98,7 @@ void MiniStatusWindow::update() } mHpBar->setProgress((float) player_node->mHp / player_node->mMaxHp); - // mMpBar->setProgress((float) player_node->mMp / player_node->mMaxMp); + mMpBar->setProgress((float) player_node->mMp / player_node->mMaxMp); mXpBar->setProgress( (float) player_node->getXp() / player_node->mXpForNextLevel); diff --git a/src/net/beinghandler.cpp b/src/net/beinghandler.cpp index c43c674f..7a0be952 100644 --- a/src/net/beinghandler.cpp +++ b/src/net/beinghandler.cpp @@ -36,7 +36,9 @@ #include "../main.h" #include "../particle.h" #include "../sound.h" +#include #include "../player_relations.h" +#include "../npc.h" const int EMOTION_TIME = 150; /**< Duration of emotion icon */ @@ -49,7 +51,7 @@ BeingHandler::BeingHandler(bool enableSync): SMSG_BEING_MOVE2, SMSG_BEING_REMOVE, SMSG_BEING_ACTION, - SMSG_BEING_LEVELUP, + SMSG_BEING_SELFEFFECT, SMSG_BEING_EMOTION, SMSG_BEING_CHANGE_LOOKS, SMSG_BEING_CHANGE_LOOKS2, @@ -208,6 +210,9 @@ void BeingHandler::handleMessage(MessageIn *msg) player_node->stopAttack(); } + if (dstBeing == current_npc) + current_npc = NULL; + if (msg->readInt8() == 1) { dstBeing->setAction(Being::DEAD); @@ -258,27 +263,17 @@ void BeingHandler::handleMessage(MessageIn *msg) } break; - case SMSG_BEING_LEVELUP: + case SMSG_BEING_SELFEFFECT: { id = (Uint32)msg->readInt32(); + if (!beingManager->findBeing(id)) + break; + + int effectType = msg->readInt32(); + + beingManager->findBeing(id)->triggerEffect(effectType); - if (id == player_node->getId()) { - logger->log("Level up"); - sound.playSfx("sfx/levelup.ogg"); - } - else { - logger->log("Someone else went level up"); - } - Particle *levelupFX; - if (msg->readInt32() == 0) { // type - levelupFX = particleEngine->addEffect( - "graphics/particles/levelup.particle.xml", 0, 0); - } - else { - levelupFX = particleEngine->addEffect( - "graphics/particles/skillup.particle.xml", 0, 0); - } - beingManager->findBeing(id)->controlParticle(levelupFX); break; + } case SMSG_BEING_EMOTION: if (!(dstBeing = beingManager->findBeing(msg->readInt32()))) @@ -513,3 +508,4 @@ void BeingHandler::handleMessage(MessageIn *msg) break; } } + diff --git a/src/net/playerhandler.cpp b/src/net/playerhandler.cpp index 463868db..27d4e601 100644 --- a/src/net/playerhandler.cpp +++ b/src/net/playerhandler.cpp @@ -52,6 +52,9 @@ extern BuyDialog *buyDialog; extern SellDialog *sellDialog; extern Window *buySellDialog; +static const int MAP_TELEPORT_SCROLL_DISTANCE = 8; /* Max. distance we are willing to scroll after a teleport; + ** everything beyond will reset the port hard. */ + /** * Listener used for handling the overweigth message. */ @@ -118,6 +121,7 @@ void PlayerHandler::handleMessage(MessageIn *msg) case SMSG_PLAYER_WARP: { std::string mapPath = msg->readString(16); + bool nearby; Uint16 x = msg->readInt16(); Uint16 y = msg->readInt16(); @@ -129,13 +133,22 @@ void PlayerHandler::handleMessage(MessageIn *msg) */ player_node->stopAttack(); - // Switch the actual map, deleting the previous one + nearby = (engine->getCurrentMapName() == mapPath); + // Switch the actual map, deleting the previous one if necessary engine->changeMap(mapPath); current_npc = 0; - float scrollOffsetX = (x - player_node->mX) * 32; - float scrollOffsetY = (y - player_node->mY) * 32; + float scrollOffsetX = 0.0f; + float scrollOffsetY = 0.0f; + + /* Scroll if neccessary */ + if (!nearby + || (abs(x - player_node->mX) > MAP_TELEPORT_SCROLL_DISTANCE) + || (abs(y - player_node->mY) > MAP_TELEPORT_SCROLL_DISTANCE)) { + scrollOffsetX = (x - player_node->mX) * 32; + scrollOffsetY = (y - player_node->mY) * 32; + } player_node->setAction(Being::STAND); player_node->mFrame = 0; diff --git a/src/net/protocol.h b/src/net/protocol.h index a2aa50c3..49c177a2 100644 --- a/src/net/protocol.h +++ b/src/net/protocol.h @@ -63,7 +63,7 @@ #define SMSG_BEING_REMOVE 0x0080 #define SMSG_BEING_CHANGE_LOOKS 0x00c3 #define SMSG_BEING_CHANGE_LOOKS2 0x01d7 /**< Same as 0x00c3, but 16 bit ID */ -#define SMSG_BEING_LEVELUP 0x019b +#define SMSG_BEING_SELFEFFECT 0x019b #define SMSG_BEING_EMOTION 0x00c0 #define SMSG_BEING_ACTION 0x008a /**< Attack, sit, stand up, ... */ #define SMSG_BEING_CHAT 0x008d /**< A being talks */ diff --git a/src/particle.h b/src/particle.h index d9b8c6b7..f281864d 100644 --- a/src/particle.h +++ b/src/particle.h @@ -160,6 +160,9 @@ class Particle : public Sprite moveBy(float x, float y, float z) { mPos.x += x; mPos.y += y; mPos.z += z; } + void + moveChildren(Vector change); + void moveBy (Vector change) { mPos += change; } @@ -270,6 +273,12 @@ class Particle : public Sprite bool isAlive() { return mAlive; } + /** + * Determines whether the particle and its children are all dead + */ + bool isExtinct() + { return !isAlive() && mChildParticles.empty(); } + /** * Manually marks the particle for deletion. */ diff --git a/src/player.h b/src/player.h index f43a6039..fe24ceed 100644 --- a/src/player.h +++ b/src/player.h @@ -94,6 +94,14 @@ class Player : public Being virtual PlayerNameDrawStrategy * getNameDrawStrategy(void) const { return mDrawStrategy; } + /** + * Triggers a visual/audio effect, such as `level up' + * + * \param effect_id ID of the effect to trigger + */ + virtual void + triggerEffect(int effectId) { internalTriggerEffect(effectId, true, true); } + private: PlayerNameDrawStrategy *mDrawStrategy; }; -- cgit v1.2.3-60-g2f50 From 2e70210586ecc2c201460947802039beb12aa69b Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 28 Aug 2008 18:38:53 +0000 Subject: Included some documentation for the shortcut window by Vq. --- ChangeLog | 2 ++ data/help/index.txt | 1 + data/help/windows.txt | 15 +++++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 data/help/windows.txt diff --git a/ChangeLog b/ChangeLog index a5a11cf0..580fbca7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,8 @@ Applied patch put together by Jaxad0127 with changes from the Aethyra project. Improves compatibility with the newer version of eAthena and works around an initialization bug. + * data/help/index.txt, data/help/windows.txt: Included some + documentation for the shortcut window by Vq. 2008-08-28 Philipp Sehmisch diff --git a/data/help/index.txt b/data/help/index.txt index 56c5e352..b7262f85 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/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. -- cgit v1.2.3-60-g2f50 From 9a8456c6c95f5d95c568664ba5adaeb466cfbb0d Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 28 Aug 2008 19:31:17 +0000 Subject: Fixed crash when map layer has too many tiles. --- ChangeLog | 2 ++ src/resources/mapreader.cpp | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 580fbca7..70ae300b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,8 @@ works around an initialization bug. * data/help/index.txt, data/help/windows.txt: Included some documentation for the shortcut window by Vq. + * src/resources/mapreader.cpp: Fixed crash when map layer has too many + tiles. 2008-08-28 Philipp Sehmisch diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp index 328b66e0..af3fc0ef 100644 --- a/src/resources/mapreader.cpp +++ b/src/resources/mapreader.cpp @@ -407,7 +407,13 @@ MapReader::readLayer(xmlNodePtr node, Map *map) setTile(map, layer, x, y, gid); x++; - if (x == w) {x = 0; y++;} + if (x == w) { + x = 0; y++; + + // When we're done, don't crash on too much data + if (y == h) + break; + } } free(binData); } -- cgit v1.2.3-60-g2f50 From bdb09d26fc6c489228cb2c28be75024f9a49eb75 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 28 Aug 2008 20:29:06 +0000 Subject: Accepted Patch by Scraggy that moves text in such a way that no text overlaps --- ChangeLog | 11 +++ src/Makefile.am | 4 ++ src/being.cpp | 50 ++++++++----- src/being.h | 28 ++++---- src/gui/viewport.cpp | 28 ++------ src/localplayer.cpp | 28 +++++++- src/localplayer.h | 11 +-- src/monster.cpp | 45 +++++++++++- src/monster.h | 20 ++++++ src/npc.cpp | 39 +++++++---- src/npc.h | 11 ++- src/player.cpp | 65 +++++++++-------- src/player.h | 47 ++++--------- src/player_relations.cpp | 32 ++------- src/text.cpp | 104 +++++++++++++++++++++++++++ src/text.h | 96 +++++++++++++++++++++++++ src/textmanager.cpp | 179 +++++++++++++++++++++++++++++++++++++++++++++++ src/textmanager.h | 78 +++++++++++++++++++++ 18 files changed, 703 insertions(+), 173 deletions(-) create mode 100644 src/text.cpp create mode 100644 src/text.h create mode 100644 src/textmanager.cpp create mode 100644 src/textmanager.h diff --git a/ChangeLog b/ChangeLog index 70ae300b..a89dc660 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2008-08-28 Douglas Boffey + + * src/localplayer.cpp, src/text.h, src/gui/viewport.cpp, src/npc.cpp, + src/textmanager.h, src/player.cpp, src/monster.h, src/textmanager.cpp, + src/being.cpp, src/npc.h, src/monster.cpp, src/player.h, + src/localplayer.h, src/player_relations.cpp, src/text.cpp, + src/Makefile.am, src/being.h: Move any chat, character names, NPC + names or targetted mob names so that no text will obscure any other + text. If there is no decent place for the text, it will default to + overlapping. + 2008-08-28 Fate * src/engine.h, src/gui/ministatus.cpp, src/engine.cpp, diff --git a/src/Makefile.am b/src/Makefile.am index 3156a800..340f1947 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -291,6 +291,10 @@ tmw_SOURCES = gui/widgets/resizegrip.cpp \ sound.cpp \ sound.h \ sprite.h \ + text.cpp \ + text.h \ + textmanager.cpp \ + textmanager.h \ textparticle.cpp \ textparticle.h \ tileset.h \ diff --git a/src/being.cpp b/src/being.cpp index 1880e7c0..dca87677 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -34,6 +34,7 @@ #include "particle.h" #include "sound.h" #include "localplayer.h" +#include "text.h" #include "resources/resourcemanager.h" #include "resources/imageset.h" @@ -51,6 +52,9 @@ int Being::instances = 0; ImageSet *Being::emotionSet = NULL; +static const int X_SPEECH_OFFSET = 18; +static const int Y_SPEECH_OFFSET = 60; + Being::Being(int id, int job, Map *map): mJob(job), mX(0), mY(0), @@ -83,6 +87,7 @@ Being::Being(int id, int job, Map *map): } instances++; + mSpeech = 0; } Being::~Being() @@ -106,6 +111,8 @@ Being::~Being() emotionSet->decRef(); emotionSet = NULL; } + + delete mSpeech; } void @@ -153,7 +160,12 @@ Being::setSprite(int slot, int id, std::string color) void Being::setSpeech(const std::string &text, Uint32 time) { - mSpeech = text; + // don't introduce a memory leak + delete mSpeech; + + mSpeech = new Text(text, mPx + X_SPEECH_OFFSET, mPy - Y_SPEECH_OFFSET, + gcn::Graphics::CENTER, speechFont, + gcn::Color(255, 255, 255)); mSpeechTime = 500; } @@ -361,13 +373,28 @@ void Being::logic() { // Reduce the time that speech is still displayed - if (mSpeechTime > 0) - mSpeechTime--; + if (mSpeechTime > 0 && mSpeech) + { + if (--mSpeechTime == 0) + { + delete mSpeech; + mSpeech = 0; + } + } + int oldPx = mPx; + int oldPy = mPy; // Update pixel coordinates mPx = mX * 32 + getXOffset(); mPy = mY * 32 + getYOffset(); - + if (mPx != oldPx || mPy != oldPy) + { + if (mSpeech) + { + mSpeech->adviseXY(mPx + X_SPEECH_OFFSET, mPy - Y_SPEECH_OFFSET); + } + updateCoords(); + } if (mEmotion != 0) { mEmotionTime--; @@ -432,21 +459,6 @@ Being::drawEmotion(Graphics *graphics, int offsetX, int offsetY) graphics->drawImage(emotionSet->get(emotionIndex), px, py); } -void -Being::drawSpeech(Graphics *graphics, int offsetX, int offsetY) -{ - int px = mPx + offsetX; - int py = mPy + offsetY; - - // Draw speech above this being - if (mSpeechTime > 0) - { - graphics->setFont(speechFont); - graphics->setColor(gcn::Color(255, 255, 255)); - graphics->drawText(mSpeech, px + 18, py - 60, gcn::Graphics::CENTER); - } -} - Being::Type Being::getType() const { diff --git a/src/being.h b/src/being.h index c4f34503..d5fe7790 100644 --- a/src/being.h +++ b/src/being.h @@ -47,6 +47,7 @@ class Map; class Graphics; class ImageSet; class Particle; +class Text; /** * A position along a being's path. @@ -187,7 +188,7 @@ class Being : public Sprite * * @param name The name that should appear. */ - void + virtual void setName(const std::string &name) { mName = name; } /** @@ -238,24 +239,12 @@ class Being : public Sprite virtual void logic(); - /** - * Draws the speech text above the being. - */ - void - drawSpeech(Graphics *graphics, int offsetX, int offsetY); - /** * Draws the emotion picture above the being. */ void drawEmotion(Graphics *graphics, int offsetX, int offsetY); - /** - * Draws the name text below the being. - */ - virtual void - drawName(Graphics *, int, int) {}; - /** * Returns the type of the being. */ @@ -363,7 +352,11 @@ class Being : public Sprite */ void controlParticle(Particle *particle); - void setEmote(Uint8 emotion, Uint8 emote_time) { mEmotion = emotion; mEmotionTime = emote_time; } + void setEmote(Uint8 emotion, Uint8 emote_time) + { + mEmotion = emotion; + mEmotionTime = emote_time; + } /** * Triggers a visual effect, such as `level up' @@ -383,6 +376,11 @@ class Being : public Sprite */ void setPath(const Path &path); + /** + * Let the sub-classes react to a replacement + */ + virtual void updateCoords() {} + /** * Returns the sprite direction of this being. */ @@ -409,7 +407,7 @@ class Being : public Sprite const ItemInfo* mEquippedWeapon; Path mPath; - std::string mSpeech; + Text *mSpeech; Uint16 mHairStyle, mHairColor; Uint8 mGender; Uint32 mSpeechTime; diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp index 9d1e5a1d..e8293acf 100644 --- a/src/gui/viewport.cpp +++ b/src/gui/viewport.cpp @@ -37,6 +37,7 @@ #include "../map.h" #include "../monster.h" #include "../npc.h" +#include "../textmanager.h" #include "../resources/animation.h" #include "../resources/monsterinfo.h" @@ -226,7 +227,6 @@ Viewport::draw(gcn::Graphics *gcnGraphics) { mMap->draw(graphics, (int) mPixelViewX, (int) mPixelViewY); drawTargetCursor(graphics); // TODO: Draw the cursor with the sprite - drawTargetName(graphics); } // Find a path from the player to the mouse, and draw it. This is for debug @@ -257,12 +257,16 @@ Viewport::draw(gcn::Graphics *gcnGraphics) } } + // Draw text + if (textManager) + { + textManager->draw(graphics, mPixelViewX, mPixelViewY); + } + // 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)->drawName(graphics, -(int) mPixelViewX, -(int) mPixelViewY); (*i)->drawEmotion(graphics, -(int) mPixelViewX, -(int) mPixelViewY); } @@ -329,24 +333,6 @@ Viewport::drawTargetCursor(Graphics *graphics) } } -void -Viewport::drawTargetName(Graphics *graphics) -{ - // Draw target marker if needed - Being *target = player_node->getTarget(); - if (target && target->getType() == Being::MONSTER) - { - graphics->setFont(speechFont); - graphics->setColor(gcn::Color(255, 32, 32)); - - const MonsterInfo &mi = static_cast(target)->getInfo(); - int posX = target->getPixelX() + 16 - (int)mPixelViewX; - int posY = target->getPixelY() + 16 - target->getHeight() - (int)mPixelViewY; - - graphics->drawText(mi.getName(), posX, posY, gcn::Graphics::CENTER); - } -} - void Viewport::mousePressed(gcn::MouseEvent &event) { diff --git a/src/localplayer.cpp b/src/localplayer.cpp index 3929da8b..3caa5ead 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -31,6 +31,7 @@ #include "main.h" #include "particle.h" #include "sound.h" +#include "monster.h" #include "gui/gui.h" @@ -226,6 +227,23 @@ void LocalPlayer::walk(unsigned char dir) } } +void LocalPlayer::setTarget(Being *target) +{ + if (target == mTarget) + { + return; + } + if (mTarget && mTarget->getType() == Being::MONSTER) + { + static_cast(mTarget)->showName(false); + } + mTarget = target; + if (target && target->getType() == Being::MONSTER) + { + static_cast(target)->showName(true); + } +} + void LocalPlayer::setDestination(Uint16 x, Uint16 y) { // Only send a new message to the server when destination changes @@ -363,9 +381,13 @@ void LocalPlayer::attack(Being *target, bool keep) return; if (keep && target) - mTarget = target; + { + setTarget(target); + } else if (mTarget) + { target = mTarget; + } if (!target) return; @@ -411,7 +433,7 @@ void LocalPlayer::attack(Being *target, bool keep) void LocalPlayer::stopAttack() { - mTarget = NULL; + setTarget(NULL); } Being* LocalPlayer::getTarget() const @@ -454,7 +476,7 @@ bool LocalPlayer::withinAttackRange(Being *target) void LocalPlayer::setGotoTarget(Being *target) { - mTarget = target; + setTarget(target); mGoingToTarget = true; setDestination(target->mX, target->mY); } diff --git a/src/localplayer.h b/src/localplayer.h index 5ce94081..493e0846 100644 --- a/src/localplayer.h +++ b/src/localplayer.h @@ -54,8 +54,9 @@ class LocalPlayer : public Player */ ~LocalPlayer(); + void setName(const std::string &name) {Being::setName(name); } void setNetwork(Network *network) { mNetwork = network; } - + Network *getNetwork() {return mNetwork; } virtual void logic(); /** @@ -64,12 +65,6 @@ class LocalPlayer : public Player */ virtual void nextStep(); - /** - * Draws the name text below the being. - */ - virtual void - drawName(Graphics *graphics, Sint32 offsetX, Sint32 offsetY) {}; - /** * Returns the player's inventory. */ @@ -140,7 +135,7 @@ class LocalPlayer : public Player /** * Sets the target being of the player. */ - void setTarget(Being* target) { mTarget = target; } + void setTarget(Being* target); /** * Sets a new destination for this being to walk to. diff --git a/src/monster.cpp b/src/monster.cpp index e2a07e86..bea37b3f 100644 --- a/src/monster.cpp +++ b/src/monster.cpp @@ -27,14 +27,21 @@ #include "game.h" #include "sound.h" #include "particle.h" +#include "text.h" +#include "localplayer.h" + +#include "gui/gui.h" #include "resources/monsterdb.h" #include "utils/tostring.h" +static const int NAME_X_OFFSET = 16; +static const int NAME_Y_OFFSET = 16; Monster::Monster(Uint32 id, Uint16 job, Map *map): - Being(id, job, map) + Being(id, job, map), + mText(0) { const MonsterInfo& info = MonsterDB::get(job - 1002); @@ -59,6 +66,14 @@ Monster::Monster(Uint32 id, Uint16 job, Map *map): } } +Monster::~Monster() +{ + if (mText) + { + player_node->setTarget(0); + } +} + void Monster::logic() { @@ -120,7 +135,8 @@ 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 @@ -141,3 +157,28 @@ Monster::getInfo() const { return MonsterDB::get(mJob - 1002); } + +void Monster::showName(bool show) +{ + delete mText; + if (show) + { + mText = new Text(getInfo().getName(), mPx + NAME_X_OFFSET, + mPy + NAME_Y_OFFSET - getHeight(), + gcn::Graphics::CENTER, + speechFont, gcn::Color(255, 32, 32)); + } + else + { + mText = 0; + } +} + +void Monster::updateCoords() +{ + if (mText) + { + mText->adviseXY(mPx + NAME_X_OFFSET, + mPy + NAME_Y_OFFSET - getHeight()); + } +} diff --git a/src/monster.h b/src/monster.h index 39556b44..cd34886b 100644 --- a/src/monster.h +++ b/src/monster.h @@ -27,12 +27,15 @@ #include "being.h" class MonsterInfo; +class Text; class Monster : public Being { public: Monster(Uint32 id, Uint16 job, Map *map); + ~Monster(); + virtual void logic(); virtual void setAction(Uint8 action); @@ -63,6 +66,23 @@ class Monster : public Being */ const MonsterInfo& getInfo() const; + + /** + * Determine whether the mob should show it's name + */ + void showName(bool show); + + protected: + /** + * Update the text when the monster moves + */ + void updateCoords(); + + private: + /** + * holds a text object when the mod displays it's name, 0 otherwise + */ + Text *mText; }; #endif diff --git a/src/npc.cpp b/src/npc.cpp index 2177aedc..ab3c6970 100644 --- a/src/npc.cpp +++ b/src/npc.cpp @@ -26,6 +26,7 @@ #include "animatedsprite.h" #include "graphics.h" #include "particle.h" +#include "text.h" #include "net/messageout.h" #include "net/protocol.h" @@ -35,12 +36,15 @@ NPC *current_npc = 0; +static const int NAME_X_OFFSET = 15; +static const int NAME_Y_OFFSET = 30; + NPC::NPC(Uint32 id, Uint16 job, Map *map, Network *network): Being(id, job, map), mNetwork(network) { NPCInfo info = NPCDB::get(job); - //setup NPC sprites + // Setup NPC sprites int c = BASE_SPRITE; for (std::list::const_iterator i = info.sprites.begin(); i != info.sprites.end(); @@ -54,7 +58,7 @@ NPC::NPC(Uint32 id, Uint16 job, Map *map, Network *network): c++; } - //setup particle effects + // Setup particle effects for (std::list::const_iterator i = info.particles.begin(); i != info.particles.end(); i++) @@ -62,23 +66,26 @@ NPC::NPC(Uint32 id, Uint16 job, Map *map, Network *network): Particle *p = particleEngine->addEffect(*i, 0, 0); this->controlParticle(p); } + mName = 0; } -Being::Type -NPC::getType() const +NPC::~NPC() { - return Being::NPC; + delete mName; } -void -NPC::drawName(Graphics *graphics, Sint32 offsetX, Sint32 offsetY) +void NPC::setName(const std::string &name) { - int px = mPx + offsetX; - int py = mPy + offsetY; + delete mName; + mName = new Text(name, mPx + NAME_X_OFFSET, mPy + NAME_Y_OFFSET, + gcn::Graphics::CENTER, speechFont, + gcn::Color(200, 200, 255)); +} - graphics->setFont(speechFont); - graphics->setColor(gcn::Color(200, 200, 255)); - graphics->drawText(mName, px + 15, py + 30, gcn::Graphics::CENTER); +Being::Type +NPC::getType() const +{ + return Being::NPC; } void @@ -129,3 +136,11 @@ NPC::sell() outMsg.writeInt32(mId); outMsg.writeInt8(1); } + +void NPC::updateCoords() +{ + if (mName) + { + mName->adviseXY(mPx + NAME_X_OFFSET, mPy + NAME_Y_OFFSET); + } +} diff --git a/src/npc.h b/src/npc.h index 0d9966bd..2f9bbef4 100644 --- a/src/npc.h +++ b/src/npc.h @@ -28,18 +28,20 @@ class Network; class Graphics; +class Text; class NPC : public Being { public: NPC(Uint32 id, Uint16 job, Map *map, Network *network); + ~NPC(); + + void setName(const std::string &name); + virtual Type getType() const; - virtual void - drawName(Graphics *graphics, Sint32 offsetX, Sint32 offsetY); - void talk(); void nextDialog(); void dialogChoice(char choice); @@ -49,6 +51,9 @@ class NPC : public Being protected: Network *mNetwork; + void updateCoords(); + private: + Text *mName; }; extern NPC *current_npc; diff --git a/src/player.cpp b/src/player.cpp index d0c6bdc6..f86e7179 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -34,11 +34,34 @@ #include "utils/strprintf.h" #include "gui/gui.h" +#include + +static const int NAME_X_OFFSET = 15; +static const int NAME_Y_OFFSET = 30; Player::Player(int id, int job, Map *map): - Being(id, job, map), - mDrawStrategy(NULL) + Being(id, job, map) { + mName = 0; +} + +Player::~Player() +{ + if (mName) + { + delete mName; + } +} + +void Player::setName(const std::string &name) +{ + if (mName == 0) + { + mName = new FlashText(name, mPx + NAME_X_OFFSET, mPy + NAME_Y_OFFSET, + gcn::Graphics::CENTER, + speechFont, gcn::Color(255, 255, 255)); + Being::setName(name); + } } void @@ -75,37 +98,13 @@ Player::getType() const return PLAYER; } - void -Player::setNameDrawStrategy(PlayerNameDrawStrategy *draw_strategy) +Player::flash(int time) { - if (mDrawStrategy) - delete mDrawStrategy; - mDrawStrategy = draw_strategy; -} - -class -DefaultPlayerNameDrawStrategy : public PlayerNameDrawStrategy -{ -public: - virtual void draw(Player *player, Graphics *graphics, int px, int py) + if (mName) { - graphics->setFont(speechFont); - graphics->setColor(gcn::Color(255, 255, 255)); - graphics->drawText(player->getName(), px + 15, py + 30, gcn::Graphics::CENTER); + mName->flash(time); } -}; - -void -Player::drawName(Graphics *graphics, int offsetX, int offsetY) -{ - int px = mPx + offsetX; - int py = mPy + offsetY; - - if (mDrawStrategy) - mDrawStrategy->draw(this, graphics, px, py); - else - DefaultPlayerNameDrawStrategy().draw(this, graphics, px, py); } void Player::setGender(int gender) @@ -202,3 +201,11 @@ void Player::setSprite(int slot, int id, std::string color) Being::setSprite(slot, id, color); } + +void Player::updateCoords() +{ + if (mName) + { + mName->adviseXY(mPx + NAME_X_OFFSET, mPy + NAME_Y_OFFSET); + } +} diff --git a/src/player.h b/src/player.h index fe24ceed..6347b0a6 100644 --- a/src/player.h +++ b/src/player.h @@ -25,23 +25,11 @@ #define _TMW_PLAYER_H #include "being.h" +#include "text.h" class Graphics; class Map; -class Player; - -class PlayerNameDrawStrategy -{ -public: - virtual ~PlayerNameDrawStrategy(void) {} - - /** - * Draw the player's name - */ - virtual void draw(Player *p, Graphics *graphics, int px, int py) = 0; -}; - /** * A player being. Players have their name drawn beneath them. This class also * implements player-specific loading of base sprite, hair sprite and equipment @@ -52,15 +40,20 @@ class Player : public Being public: Player(int id, int job, Map *map); + ~Player(); + + /** + * Set up mName to be the character's name + */ + virtual void + setName(const std::string &name); + virtual void logic(); virtual Type getType() const; - virtual void - drawName(Graphics *graphics, int offsetX, int offsetY); - virtual void setGender(int gender); @@ -83,27 +76,15 @@ class Player : public Being setSprite(int slot, int id, std::string color = ""); /** - * Sets the strategy responsible for drawing the player's name - * - * \param draw_strategy A strategy describing how the player's name - * should be drawn, or NULL for default + * Flash the player's name */ - virtual void - setNameDrawStrategy(PlayerNameDrawStrategy *draw_strategy); - - virtual PlayerNameDrawStrategy * - getNameDrawStrategy(void) const { return mDrawStrategy; } + void flash(int time); - /** - * Triggers a visual/audio effect, such as `level up' - * - * \param effect_id ID of the effect to trigger - */ - virtual void - triggerEffect(int effectId) { internalTriggerEffect(effectId, true, true); } + protected: + void updateCoords(); private: - PlayerNameDrawStrategy *mDrawStrategy; + FlashText *mName; }; #endif diff --git a/src/player_relations.cpp b/src/player_relations.cpp index 610f5d04..c494dc74 100644 --- a/src/player_relations.cpp +++ b/src/player_relations.cpp @@ -88,7 +88,7 @@ PlayerRelationsManager::PlayerRelationsManager() : mDefaultPermissions(PlayerRelation::DEFAULT), mIgnoreStrategy(NULL) { -} +} void PlayerRelationsManager::clear() @@ -325,29 +325,6 @@ public: }; -class -BlinkPlayerNameDrawStrategy : public PlayerNameDrawStrategy -{ -public: - BlinkPlayerNameDrawStrategy(int count) : - mCount(count) - { - } - - virtual void draw(Player *player, Graphics *graphics, int px, int py) - { - graphics->setFont(speechFont); - if (mCount & 4) - graphics->drawText(player->getName(), px + 15, py + 30, gcn::Graphics::CENTER); - - if (mCount-- <= 0) - player->setNameDrawStrategy(NULL); - } -private: - int mCount; // Number of steps to blink -}; - - class PIS_blinkname : public PlayerIgnoreStrategy { public: @@ -359,9 +336,9 @@ public: virtual void ignore(Player *player, unsigned int flags) - { - player->setNameDrawStrategy(new BlinkPlayerNameDrawStrategy(200)); - } + { + player->flash(200); + } }; class PIS_emote : public PlayerIgnoreStrategy @@ -407,4 +384,3 @@ PlayerRelationsManager::getPlayerIgnoreStrategies() PlayerRelationsManager player_relations; - diff --git a/src/text.cpp b/src/text.cpp new file mode 100644 index 00000000..4212c5c8 --- /dev/null +++ b/src/text.cpp @@ -0,0 +1,104 @@ +/* + * 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 + * + * $Id$ + */ + +#include "text.h" + +#include + +#include + +#include "textmanager.h" + +int Text::mInstances = 0; + + +Text::Text(const std::string &text, int x, int y, + gcn::Graphics::Alignment alignment, gcn::Font *font, + gcn::Color colour) : + mText(text), mColour(colour) +{ + if (textManager == 0) + { + textManager = new TextManager(); + } + ++mInstances; + mHeight = font->getHeight(); + mWidth = font->getWidth(text); + switch (alignment) + { + case gcn::Graphics::LEFT: + mXOffset = 0; + break; + case gcn::Graphics::CENTER: + mXOffset = mWidth / 2; + break; + case gcn::Graphics::RIGHT: + mXOffset = mWidth; + break; + } + mX = x - mXOffset; + mY = y; + textManager->addText(this); + mFont = font; +} + +void Text::adviseXY(int x, int y) +{ + textManager->moveText(this, x - mXOffset, y); +} + +Text::~Text() +{ + textManager->removeText(this); + if (--mInstances == 0) + { + delete textManager; + textManager = 0; + } +} + +void Text::draw(Graphics *graphics, int xOff, int yOff) +{ + graphics->setFont(mFont); + graphics->setColor(mColour); + graphics->drawText(mText, mX - xOff, mY - yOff, gcn::Graphics::LEFT); +} + +FlashText::FlashText(const std::string &text, int x, int y, + gcn::Graphics::Alignment alignment, gcn::Font *font, + gcn::Color colour) : + Text(text, x, y, alignment, font, colour), mTime(0) +{ +} + +void FlashText::draw(Graphics *graphics, int xOff, int yOff) +{ + if (mTime) + { + if ((--mTime & 4) == 0) + { + return; + } + } + Text::draw(graphics, xOff, yOff); +} diff --git a/src/text.h b/src/text.h new file mode 100644 index 00000000..7ea96dee --- /dev/null +++ b/src/text.h @@ -0,0 +1,96 @@ +/* + * 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 + * + * $Id$ + */ + +#ifndef _TMW_TEXT_H +#define _TMW_TEXT_H + +#include "graphics.h" + +#include + +class TextManager; + +class Text +{ + friend class TextManager; + public: + /** + * 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 + */ + void + adviseXY(int x, int y); + + /** + * Remove the text from the screen + */ + ~Text(); + + /** + * Draws the text + */ + virtual void + draw(Graphics *graphics, int xOff, int yOff); + + 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 +{ + public: + FlashText(const std::string &text, int x, int y, + gcn::Graphics::Alignment alignment, gcn::Font *font, + gcn::Color colour); + + /** + * Flash the text for so many refreshes + */ + void flash(int time) {mTime = time; } + + /** + * Draws the text + */ + virtual void + draw(Graphics *graphics, int xOff, int yOff); + + private: + int mTime; /**< Time left for flashing */ +}; + +#endif // _TMW_TEXT_H diff --git a/src/textmanager.cpp b/src/textmanager.cpp new file mode 100644 index 00000000..b4135763 --- /dev/null +++ b/src/textmanager.cpp @@ -0,0 +1,179 @@ +/* + * 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 + * + * $Id$ + */ + +#include "textmanager.h" + +#include + +#include "text.h" + +TextManager *textManager = 0; + +TextManager::TextManager() +{ +} + +void TextManager::addText(Text *text) +{ + place(text, 0, text->mX, text->mY, text->mHeight); + mTextList.push_back(text); +} + +void TextManager::moveText(Text *text, int x, int y) +{ + text->mX = x; + text->mY = y; + place(text, text, text->mX, text->mY, text->mHeight); +} + +void TextManager::removeText(const Text *text) +{ + for (TextList::iterator ptr = mTextList.begin(), + pEnd = mTextList.end(); ptr != pEnd; ++ptr) + { + if (*ptr == text) + { + mTextList.erase(ptr); + return; + } + } +} + +TextManager::~TextManager() +{ +} + +void TextManager::draw(Graphics *graphics, int xOff, int yOff) +{ + for (TextList::iterator bPtr = mTextList.begin(), ePtr = mTextList.end(); + bPtr != ePtr; ++bPtr) + { + (*bPtr)->draw(graphics, xOff, yOff); + } +} + +void TextManager::place(const Text *textObj, const Text *omit, + int &x, int &y, int h) +{ + int xLeft = textObj->mX; + int xRight = xLeft + textObj->mWidth - 1; + const int TEST = 100; // Number of lines to test for text + bool occupied[TEST]; // is some other text obscuring this line? + std::memset(&occupied, 0, sizeof(occupied)); // set all to false + int wantedTop = (TEST - h) / 2; // Entry in occupied at top of text + int occupiedTop = y - wantedTop; // Line in map representing to of occupied + + for (TextList::const_iterator ptr = mTextList.begin(), + pEnd = mTextList.end(); ptr != pEnd; ++ptr) + { + if (*ptr != omit && + (*ptr)->mX <= xRight && + (*ptr)->mX + (*ptr)->mWidth > xLeft) + { + int from = (*ptr)->mY - occupiedTop; + int to = from + (*ptr)->mHeight - 1; + if (to < 0 || from >= TEST) // out of range considered + { + continue; + } + if (from < 0) + { + from = 0; + } + if (to >= TEST) + { + to = TEST - 1; + } + for (int i = from; i <= to; ++i) + { + occupied[i] = true; + } + } + } + bool ok = true; + for (int i = wantedTop; i < wantedTop + h; ++i) + { + ok = ok && !occupied[i]; + } + if (ok) + { + return; + } + // Have to move it up or down, so find nearest spaces either side + int consec = 0; + int upSlot = -1; // means not found + for (int seek = wantedTop + h - 2; seek >= 0; --seek) + { + if (occupied[seek]) + { + consec = 0; + } + else + { + if (++consec == h) + { + upSlot = seek; + break; + } + } + } + int downSlot = -1; + consec = 0; + for (int seek = wantedTop + 1; seek < TEST; ++seek) + { + if (occupied[seek]) + { + consec = 0; + } + else + { + if (++consec == h) + { + downSlot = seek - h + 1; + break; + } + } + } + if (upSlot == -1 && downSlot == -1) // no good solution, so leave as is + { + return; + } + if (upSlot == -1) // must go down + { + y += downSlot - wantedTop; + return; + } + if (downSlot == -1) // must go up + { + y -= wantedTop - upSlot; + return; + } + if (wantedTop - upSlot > downSlot - wantedTop) // down is better + { + y += downSlot - wantedTop; + } + else + { + y -= wantedTop - upSlot; + } +} diff --git a/src/textmanager.h b/src/textmanager.h new file mode 100644 index 00000000..f7f1247c --- /dev/null +++ b/src/textmanager.h @@ -0,0 +1,78 @@ +/* + * 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 + * + * $Id$ + */ + +#ifndef _TMW_TEXTMANAGER_H +#define _TMW_TEXTMANAGER_H + +#include + +class Text; +class Graphics; + +class TextManager +{ + public: + /** + * Constructor + */ + TextManager(); + + /** + * Add text to the manager + */ + void addText(Text *text); + + /** + * Move the text around the screen + */ + void moveText(Text *text, int x, int y); + + /** + * Remove the text from the manager + */ + void removeText(const Text *text); + + /** + * Destroy the manager + */ + ~TextManager(); + + /** + * Draw the text + */ + void draw(Graphics *graphics, int xOff, int yOff); + + private: + /** + * Position the text so as to avoid conflict + */ + void place(const Text *textObj, const Text *omit, + int &x, int &y, int h); + + typedef std::list TextList; /**< The container type */ + TextList mTextList; /**< The container */ +}; + +extern TextManager *textManager; + +#endif // _TMW_TEXTMANAGER_H -- cgit v1.2.3-60-g2f50 From 7334c8dd3a7125126e63cd8a483ec93f03bc690d Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 28 Aug 2008 21:11:18 +0000 Subject: Updated the version to 0.0.26 and updated the AUTHORS file. If you have contributed and I forgot you, please contact me as soon as possible! --- AUTHORS | 98 +++++++++++++++++++++++++++++---------------------- CMakeLists.txt | 2 +- ChangeLog | 4 +++ NEWS | 7 ++++ README | 2 +- configure.ac | 2 +- data/help/changes.txt | 23 ++++-------- data/help/header.txt | 2 +- src/winver.h | 4 +-- 9 files changed, 79 insertions(+), 65 deletions(-) diff --git a/AUTHORS b/AUTHORS index 19d28884..6ae0b9c4 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,43 +1,55 @@ ------------------------ -The Mana World Dev Team ------------------------ - - ElvenProgrammer aka Eugenio Favalli (elvenprogrammer@gmail.com) - Project leader, programmer - -== Programmers == - - Bertram (SDL input, progress bar drawing, Debian package) - Bjørn Lindeijer (various parts, GUI, graphics, A* and map rewrites) - Björn Steinbrink (various parts) - Javila (various parts, GUI) - nym (several GUI parts) - Shura (configuration, sound, misc. ports) - zenogais (resource manager) - Usiu (several GUI parts) - Mra (some GUI parts) - -== Artists == - - Clef (tiles, concepts) - Gnulia (conceptual art) - Irukard (item icons) - Magick (music and sound effects) - Neko-mon (player sprites, various things) - Neorice (monster sprites, tiles) - Modanung (pixel art, concept art) - Pajarico (concepts) - Rotonen (backstory, art director, music, sound) - Talaroc (sprites) - Ti Sing Hao (music) - -== Misc thanks == - - Ultramichy (hosting test server) - -== Inactive/retired == - - Chetic (maps) - SimEdw (network code) - Sull (hosting CVS and related services) - Vlady (several items) +----------------------------- +-- The Mana World Dev Team -- +----------------------------- + +== Contributors to client/server development == + +Aaron Marks +Alexander Baldeck (Shura) +Andrej Sinicyn +Björn Steinbrink (Doener) +Bjørn Lindeijer +Cedric Borgese (moi1392) +David Athay +Dennis Friis +Douglas Boffey +Duane Bailey +Eugenio Favalli +Eric Scrivner +Fredrik Reveny +Guillaume Melquiond (Silene) +Jan-Fabian Humann (Mra) +José Ávila +Kiyoshi Kyokai +Lloyd Bryant +Marcel W. Wysocki +Mateusz Kaduk (Usiu) +Matthias Hartmann +Philipp Sehmisch (Crush) +Simon Edwardsson +Yohann Ferreira + +== Contributors to game content == + +Clef +Gnulia +Frode Lindeijer (Modanung) +Jared Adams +Joni Orponen (Rotonen) +Krzysztof Daszuta +Magick +Neko-mon +Neorice +Pajarico Guaje +Vlady +QOAL +Ryan Voss (Talaroc) +Tatjana +Ti Sing Hao + +== Other contributors == + +Jean-Francois Lampron +Rodney Dawes +Ultramichy +Zuzanna K. Filutowska diff --git a/CMakeLists.txt b/CMakeLists.txt index fd71e1b0..3c8aa509 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT(TMW) -SET(VERSION 0.0.25) +SET(VERSION 0.0.26) # where to look for cmake modules SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake/Modules) diff --git a/ChangeLog b/ChangeLog index a89dc660..027dbb97 100644 --- a/ChangeLog +++ b/ChangeLog @@ -30,6 +30,10 @@ documentation for the shortcut window by Vq. * src/resources/mapreader.cpp: Fixed crash when map layer has too many tiles. + * AUTHORS, src/winver.h, README, configure.ac, data/help/changes.txt, + data/help/header.txt, NEWS, CMakeLists.txt: Updated the version to + 0.0.26 and updated the AUTHORS file. If you have contributed and I + forgot you, please contact me as soon as possible! 2008-08-28 Philipp Sehmisch diff --git a/NEWS b/NEWS index ca1286f1..15c2b713 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,10 @@ +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 diff --git a/README b/README index ea293a9e..4f5fc02e 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ THE MANA WORLD ============== - Version: 0.0.25 Date: 27/7/2008 + Version: 0.0.26 Date: 29/8/2008 Development team: - See AUTHORS file for a list diff --git a/configure.ac b/configure.ac index ddd47e40..304ae6d7 100755 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ(2.59) -AC_INIT([The Mana World], [0.0.25], [elvenprogrammer@gmail.com], [tmw]) +AC_INIT([The Mana World], [0.0.26], [elvenprogrammer@gmail.com], [tmw]) AC_CONFIG_HEADERS([config.h:config.h.in]) AC_LANG_CPLUSPLUS diff --git a/data/help/changes.txt b/data/help/changes.txt index fefa8bcb..d05dd5cb 100644 --- a/data/help/changes.txt +++ b/data/help/changes.txt @@ -3,6 +3,13 @@ ##3 === RECENT 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 @@ -62,19 +69,3 @@ - Fixed a crash on filling up your inventory - Fixed item list in shops not to scroll back when selling - 0.0.23 (3 June 2007) - - Added a particle engine along with some particle effects - - Added a cursor to indicate targeted enemy - - Added new program icon - - Added a man page for UNIX like systems - - Added the --version command line parameter - - Improved MacOS X release - - Screenshots are now saved in the .tmw directory on UNIX like systems - - Magic pink is no longer used for transparency (fixes issues with that on Mac) - - Fixed difficulties with resizing windows - - Fixed misleading error message when connecting fails - - Fixed wrong error message when account name already exists - - Fixed crash when deleting a character - - Fixed error message when creating a new character fails - - Fixed updating problem when using scrollwheel to change shop selection - diff --git a/data/help/header.txt b/data/help/header.txt index d41c5ff7..462deaa2 100644 --- a/data/help/header.txt +++ b/data/help/header.txt @@ -2,7 +2,7 @@ ##1 T H E M A N A W O R L D ##1 ========================================== - ##2Version:##6 0.0.25 ##2Date:##327 July 2008 + ##2Version:##6 0.0.26 ##2Date:##329 August 2008 ##2 Website: http://themanaworld.org diff --git a/src/winver.h b/src/winver.h index a276fde5..4de9bbe5 100644 --- a/src/winver.h +++ b/src/winver.h @@ -1,6 +1,6 @@ /* VERSION DEFINITIONS */ #define VER_MAJOR 0 #define VER_MINOR 0 -#define VER_RELEASE 25 +#define VER_RELEASE 26 #define VER_BUILD 0 -#define PACKAGE_VERSION "0.0.25" +#define PACKAGE_VERSION "0.0.26" -- cgit v1.2.3-60-g2f50 From 41bb6d9efe7884b2605d42584c5fda3327c87156 Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Thu, 28 Aug 2008 22:44:43 +0000 Subject: Added output-pause to copy constructor of particle emitters. --- ChangeLog | 1 + src/particleemitter.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/ChangeLog b/ChangeLog index 027dbb97..559467e9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -39,6 +39,7 @@ * src/net/loginhandler.cpp: Removed the usually incorrect "for 5 minutes" clause from the message displayed to banned users. + * src/particleemitter.cpp: Added output-pause to copy constructor. 2008-08-27 Bjørn Lindeijer diff --git a/src/particleemitter.cpp b/src/particleemitter.cpp index 545936f0..3e0a3d75 100644 --- a/src/particleemitter.cpp +++ b/src/particleemitter.cpp @@ -281,10 +281,13 @@ ParticleEmitter & ParticleEmitter::operator=(const ParticleEmitter &o) mParticleAlpha = o.mParticleAlpha; mMap = o.mMap; mOutput = o.mOutput; + mOutputPause = o.mOutputPause; mParticleImage = o.mParticleImage; mParticleAnimation = o.mParticleAnimation; mParticleChildEmitters = o.mParticleChildEmitters; + mOutputPauseLeft = 0; + if (mParticleImage) mParticleImage->incRef(); return *this; -- cgit v1.2.3-60-g2f50 From 250fd9d43087d6798e3c2dbb2efa566fefcbebeb Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 29 Aug 2008 08:39:04 +0000 Subject: Added real name for QOAL and a note about this list --- AUTHORS | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/AUTHORS b/AUTHORS index 6ae0b9c4..cd4f8641 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,6 +1,9 @@ ------------------------------ --- The Mana World Dev Team -- ------------------------------ +--------------------------------- +-- 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 == @@ -26,6 +29,7 @@ Marcel W. Wysocki Mateusz Kaduk (Usiu) Matthias Hartmann Philipp Sehmisch (Crush) +Rogier Polak Simon Edwardsson Yohann Ferreira @@ -42,8 +46,8 @@ Neko-mon Neorice Pajarico Guaje Vlady -QOAL Ryan Voss (Talaroc) +Scott Ellis Tatjana Ti Sing Hao -- cgit v1.2.3-60-g2f50 From 970b31227bde94f92af392870fc91844f063f167 Mon Sep 17 00:00:00 2001 From: David Athay Date: Fri, 29 Aug 2008 09:32:39 +0000 Subject: #406 by jaxad0127 --- ChangeLog | 6 ++++++ src/monster.cpp | 29 ++++++++++++++++++++++------- src/resources/monsterdb.cpp | 4 ++-- src/resources/monsterinfo.cpp | 3 +-- src/resources/monsterinfo.h | 8 ++++---- 5 files changed, 35 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 559467e9..ea50972a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-08-29 David Athay + + * src/monster.cpp, src/resources/monsterinfo.h, + src/resources/monsterdb.cpp, src/resources/monsterinfo.cpp: Mantis #406 + by jaxad0127 to implement layered sprites. + 2008-08-28 Douglas Boffey * src/localplayer.cpp, src/text.h, src/gui/viewport.cpp, src/npc.cpp, diff --git a/src/monster.cpp b/src/monster.cpp index bea37b3f..d7a2add1 100644 --- a/src/monster.cpp +++ b/src/monster.cpp @@ -45,15 +45,24 @@ Monster::Monster(Uint32 id, Uint16 job, Map *map): { const MonsterInfo& info = MonsterDB::get(job - 1002); - std::string filename = info.getSprite(); - if (filename != "") + // Setup Monster sprites + int c = BASE_SPRITE; + const std::list &sprites = info.getSprites(); + for (std::list::const_iterator i = sprites.begin(); + i != sprites.end(); + i++) { - mSprites[BASE_SPRITE] = AnimatedSprite::load( - "graphics/sprites/" + filename); + if (c == VECTOREND_SPRITE) break; + + std::string file = "graphics/sprites/" + *i; + mSprites[c] = AnimatedSprite::load(file); + c++; } - else + + // Ensure that something is shown + if (c == BASE_SPRITE) { - mSprites[BASE_SPRITE] = AnimatedSprite::load("graphics/sprites/error.xml"); + mSprites[c] = AnimatedSprite::load("graphics/sprites/error.xml"); } const std::list &particleEffects = info.getParticleEffects(); @@ -124,7 +133,13 @@ Monster::setAction(Uint8 action) if (currentAction != ACTION_INVALID) { - mSprites[BASE_SPRITE]->play(currentAction); + for (int i = 0; i < VECTOREND_SPRITE; i++) + { + if (mSprites[i]) + { + mSprites[i]->play(currentAction); + } + } mAction = action; } } diff --git a/src/resources/monsterdb.cpp b/src/resources/monsterdb.cpp index 0a98762f..bf2878bc 100644 --- a/src/resources/monsterdb.cpp +++ b/src/resources/monsterdb.cpp @@ -45,7 +45,7 @@ MonsterDB::load() if (mLoaded) return; - mUnknown.setSprite("error.xml"); + mUnknown.addSprite("error.xml"); mUnknown.setName("unnamed"); logger->log("Initializing monster database..."); @@ -96,7 +96,7 @@ MonsterDB::load() { if (xmlStrEqual(spriteNode->name, BAD_CAST "sprite")) { - currentInfo->setSprite((const char*) spriteNode->xmlChildrenNode->content); + currentInfo->addSprite((const char*) spriteNode->xmlChildrenNode->content); } if (xmlStrEqual(spriteNode->name, BAD_CAST "sound")) diff --git a/src/resources/monsterinfo.cpp b/src/resources/monsterinfo.cpp index 8238dc3e..e492ccd3 100644 --- a/src/resources/monsterinfo.cpp +++ b/src/resources/monsterinfo.cpp @@ -27,8 +27,7 @@ #include "../utils/dtor.h" -MonsterInfo::MonsterInfo(): - mSprite("error.xml") +MonsterInfo::MonsterInfo() { } diff --git a/src/resources/monsterinfo.h b/src/resources/monsterinfo.h index d9d17510..2f690756 100644 --- a/src/resources/monsterinfo.h +++ b/src/resources/monsterinfo.h @@ -63,7 +63,7 @@ class MonsterInfo setName(std::string name) { mName = name; } void - setSprite(std::string filename) { mSprite = filename; } + addSprite(std::string filename) { mSprites.push_back(filename); } void setTargetCursorSize(Being::TargetCursorSize targetCursorSize) @@ -78,8 +78,8 @@ class MonsterInfo const std::string& getName() const { return mName; } - const std::string& - getSprite() const { return mSprite; } + const std::list& + getSprites() const { return mSprites; } Being::TargetCursorSize getTargetCursorSize() const { return mTargetCursorSize; } @@ -92,7 +92,7 @@ class MonsterInfo private: std::string mName; - std::string mSprite; + std::list mSprites; Being::TargetCursorSize mTargetCursorSize; std::map* > mSounds; std::list mParticleEffects; -- cgit v1.2.3-60-g2f50 From c09905825a62274a210d618a6388b0601ac23657 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 11 Sep 2008 07:07:37 +0000 Subject: Only require a restart to switch to full screen with OpenGL on Windows, since it works fine in Linux without having to reinitialize the OpenGL state. Adapted change by kraant from Aethyra. --- ChangeLog | 7 +++++++ src/gui/setup_video.cpp | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/ChangeLog b/ChangeLog index ea50972a..881463f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-09-11 Bjørn Lindeijer + + * src/gui/setup_video.cpp: Only require a restart to switch to full + screen with OpenGL on Windows, since it works fine in Linux without + having to reinitialize the OpenGL state. Adapted change by kraant from + Aethyra. + 2008-08-29 David Athay * src/monster.cpp, src/resources/monsterinfo.h, diff --git a/src/gui/setup_video.cpp b/src/gui/setup_video.cpp index 5044bbb6..ae15c7ef 100644 --- a/src/gui/setup_video.cpp +++ b/src/gui/setup_video.cpp @@ -280,9 +280,18 @@ void Setup_Video::apply() bool fullscreen = mFsCheckBox->isSelected(); if (fullscreen != (config.getValue("screen", 0) == 1)) { + /* 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 if (!(config.getValue("opengl", 0) == 1)) { +#endif if (!graphics->setFullscreen(fullscreen)) { fullscreen = !fullscreen; @@ -296,10 +305,12 @@ void Setup_Video::apply() logger->error(error.str()); } } +#ifdef WIN32 } else { new OkDialog("Switching to full screen", "Restart needed for changes to take effect."); } +#endif config.setValue("screen", fullscreen ? 1 : 0); } -- cgit v1.2.3-60-g2f50 From 9bdb331a237170a8d17c6d2881561aa0a4bab810 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 11 Sep 2008 07:32:45 +0000 Subject: Fixed the name of a variable (fix by Scraggy). --- ChangeLog | 1 + src/net/network.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 881463f0..b02c608d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,7 @@ screen with OpenGL on Windows, since it works fine in Linux without having to reinitialize the OpenGL state. Adapted change by kraant from Aethyra. + * src/net/network.cpp: Fixed the name of a variable (fix by Scraggy). 2008-08-29 David Athay diff --git a/src/net/network.cpp b/src/net/network.cpp index 375d93e0..3e1b6571 100644 --- a/src/net/network.cpp +++ b/src/net/network.cpp @@ -296,7 +296,7 @@ MessageIn Network::getNextMessage() len = readWord(2); #ifdef DEBUG - logger->log("Received packet 0x%x of length %d", msgId, length); + logger->log("Received packet 0x%x of length %d", msgId, len); #endif MessageIn msg(mInBuffer, len); -- cgit v1.2.3-60-g2f50 From 72c678ca1fe7ca1401efaf59c321380b4bfc6ba2 Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Thu, 2 Oct 2008 14:34:20 +0000 Subject: The "name" property of the map is now used as caption of the minimap window when it exists. --- ChangeLog | 29 +++++++++++++++++------------ src/engine.cpp | 6 ++++++ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index b02c608d..40619dd1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-10-02 Philipp Sehmisch + + * src/engine.cpp: The "name" property of the map is now used as caption + of minimap window when it exists. + 2008-09-11 Bjørn Lindeijer * src/gui/setup_video.cpp: Only require a restart to switch to full @@ -8,7 +13,7 @@ 2008-08-29 David Athay - * src/monster.cpp, src/resources/monsterinfo.h, + * src/monster.cpp, src/resources/monsterinfo.h, src/resources/monsterdb.cpp, src/resources/monsterinfo.cpp: Mantis #406 by jaxad0127 to implement layered sprites. @@ -108,12 +113,12 @@ 2008-07-22 David Athay * src/game.cpp: Revert the Alt-Gr fix as it did not work. - * src/game.cpp, src/keyboardconfig.cpp, src/keyboardconfig.h: User can + * src/game.cpp, src/keyboardconfig.cpp, src/keyboardconfig.h: User can now configure which modifier key is used for smilies. 2008-07-21 David Athay - * src/game.cpp: Initial attempt at fixing Alt-Gr issue for Rotonen, + * src/game.cpp: Initial attempt at fixing Alt-Gr issue for Rotonen, this commit is just for him! 2008-07-18 Bjørn Lindeijer @@ -135,7 +140,7 @@ 2008-07-08 David Athay * src/gui/chat.cpp, src/gui/chat.h: Mantis #359 patch by Scraggy. - + 2008-06-30 Bjørn Lindeijer * src/CMakeLists.txt: Updated CMake file to fix compilation. Patch by @@ -160,7 +165,7 @@ 2008-06-17 Fate - * src/net/tradehandler.cpp: bug #333: Suppress `trade with X cancelled' + * src/net/tradehandler.cpp: bug #333: Suppress `trade with X cancelled' messages for ignored players. 2008-06-16 Fate @@ -699,7 +704,7 @@ 2007-12-28 Philipp Sehmisch * data/maps/new_3-1.tmx: Some mapping errors fixed by Zipon. - * src/being.cpp, src/monster.cpp, src/resources/monsterinfo.cpp, + * src/being.cpp, src/monster.cpp, src/resources/monsterinfo.cpp, src/resources/monsterinfo.h: Added the possibility to assign particle effects to monsters in the monster database. * data/monsters.xml: Added flame particle effect to fire goblin as a @@ -884,7 +889,7 @@ data/graphics/sprites/head-xmaself.png, data/graphics/sprites/head-xmaself.xml: New versions of funky hat and elf hat by QOAL. - + 2007-12-04 Philipp Sehmisch * data/graphics/items/generic-santacookie.png, @@ -1147,7 +1152,7 @@ * src/player.cpp, data/graphics/sprites/hairstyle*: Added support for different hairstyles for male and female characters - (current female hairstyles are copies of the male ones until the + (current female hairstyles are copies of the male ones until the real female ones are finished) 2007-09-30 Philipp Sehmisch @@ -1539,15 +1544,15 @@ * src/particle.cpp, src/particleemitter.cpp: Corrected some perspective issues of the particle engine and fixed a crash caused by particles with child emitters that have an image than isn't used elsewhere. - * data/maps/new-3-1.tmx.gz: Added a particle effect at the spawn point + * data/maps/new-3-1.tmx.gz: Added a particle effect at the spawn point in Tulimshar. 2007-06-21 Philipp Sehmisch - * data/monsters.xml, data/graphics/sprites/monster-logmonster.png, + * data/monsters.xml, data/graphics/sprites/monster-logmonster.png, data/graphics/sprites/monster-logmonster.xml: Added logmonster by Enigmatik (Monster ID is 23). - * data/items.xml, data/equipment.xml, + * data/items.xml, data/equipment.xml, data/graphics/items/armor-chest-lightplatemail.png, data/graphics/sprites/chest-lightplatemail-male.xml, data/graphics/sprites/chest-lightplatemail-male.png, @@ -6131,4 +6136,4 @@ restore some doxygen comments, improved size adaption and made the window a shorter. * data/graphics/images/login_wallpaper.png: New login wallpaper by - Momotaro. + Momotaro. \ No newline at end of file diff --git a/src/engine.cpp b/src/engine.cpp index b53608be..67479a27 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -97,6 +97,12 @@ void Engine::changeMap(const std::string &mapPath) { mapImage = resman->getImage(newMap->getProperty("minimap")); } + if (newMap->hasProperty("name")) + { + minimap->setCaption(newMap->getProperty("name")); + } else { + minimap->setCaption("Map"); + } minimap->setMapImage(mapImage); beingManager->setMap(newMap); particleEngine->setMap(newMap); -- cgit v1.2.3-60-g2f50 From 001c91ff66818a0f1a6839df2ba2a1c4d3220160 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 4 Oct 2008 22:08:56 +0000 Subject: Added support for object groups that have an offset --- ChangeLog | 7 ++++++- src/resources/mapreader.cpp | 17 +++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 40619dd1..5748811b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-10-05 Bjørn Lindeijer + + * src/resources/mapreader.cpp: Added support for object groups that + have an offset. + 2008-10-02 Philipp Sehmisch * src/engine.cpp: The "name" property of the map is now used as caption @@ -6136,4 +6141,4 @@ restore some doxygen comments, improved size adaption and made the window a shorter. * data/graphics/images/login_wallpaper.png: New login wallpaper by - Momotaro. \ No newline at end of file + Momotaro. diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp index af3fc0ef..eacbb0d8 100644 --- a/src/resources/mapreader.cpp +++ b/src/resources/mapreader.cpp @@ -237,6 +237,12 @@ MapReader::readMap(xmlNodePtr node, const std::string &path) } else if (xmlStrEqual(childNode->name, BAD_CAST "objectgroup")) { + // The object group offset is applied to each object individually + const int tileOffsetX = XML::getProperty(childNode, "x", 0); + const int tileOffsetY = XML::getProperty(childNode, "y", 0); + const int offsetX = tileOffsetX * tw; + const int offsetY = tileOffsetY * th; + for_each_xml_child_node(objectNode, childNode) { if (xmlStrEqual(objectNode->name, BAD_CAST "object")) @@ -257,7 +263,8 @@ MapReader::readMap(xmlNodePtr node, const std::string &path) 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") { @@ -266,7 +273,9 @@ MapReader::readMap(xmlNodePtr node, const std::string &path) continue; } - map->addParticleEffect(objName, objX, objY); + map->addParticleEffect(objName, + objX + offsetX, + objY + offsetY); } else { @@ -318,8 +327,8 @@ 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()); const int h = XML::getProperty(node, "height", map->getHeight()); - const int offsetX = XML::getProperty(node, "xoffset", 0); - const int offsetY = XML::getProperty(node, "yoffset", 0); + const int offsetX = XML::getProperty(node, "x", 0); + const int offsetY = XML::getProperty(node, "y", 0); const std::string name = XML::getProperty(node, "name", ""); const bool isFringeLayer = (name == "Fringe"); -- cgit v1.2.3-60-g2f50 From 93b9bfd3bde24a76bf7ef58b71f0d8757d3b38e5 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Tue, 7 Oct 2008 21:32:43 +0000 Subject: Fixed some compiler warnings. This probably also fixed the logging of several error messages. --- ChangeLog | 7 +++++++ src/gui/updatewindow.cpp | 4 ++-- src/particleemitter.cpp | 5 ++--- src/resources/spritedef.cpp | 5 ++--- src/simpleanimation.cpp | 5 ++--- 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5748811b..d1337e47 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-10-07 Bjørn Lindeijer + + * src/gui/updatewindow.cpp, src/particleemitter.cpp, + src/simpleanimation.cpp, src/resources/spritedef.cpp: Fixed some + compiler warnings. This probably also fixed the logging of several + error messages. + 2008-10-05 Bjørn Lindeijer * src/resources/mapreader.cpp: Added support for object groups that diff --git a/src/gui/updatewindow.cpp b/src/gui/updatewindow.cpp index 42b6e9bc..518abda2 100644 --- a/src/gui/updatewindow.cpp +++ b/src/gui/updatewindow.cpp @@ -58,9 +58,9 @@ unsigned long fadler32(FILE *file) // Calculate Adler-32 checksum char *buffer = (char*) malloc(fileSize); - fread(buffer, 1, fileSize, file); + const size_t read = fread(buffer, 1, fileSize, file); unsigned long adler = adler32(0L, Z_NULL, 0); - adler = adler32(adler, (Bytef*) buffer, fileSize); + adler = adler32(adler, (Bytef*) buffer, read); free(buffer); return adler; diff --git a/src/particleemitter.cpp b/src/particleemitter.cpp index 3e0a3d75..816a5d28 100644 --- a/src/particleemitter.cpp +++ b/src/particleemitter.cpp @@ -213,7 +213,7 @@ ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, Map * if (!img) { - logger->log("No image at index " + (index)); + logger->log("No image at index %d", index); continue; } @@ -236,8 +236,7 @@ ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, Map * if (!img) { - logger->log("No image at index " + - (start)); + logger->log("No image at index %d", start); continue; } diff --git a/src/resources/spritedef.cpp b/src/resources/spritedef.cpp index ebc60240..a6d8891e 100644 --- a/src/resources/spritedef.cpp +++ b/src/resources/spritedef.cpp @@ -232,7 +232,7 @@ SpriteDef::loadAnimation(xmlNodePtr animationNode, if (!img) { - logger->log("No image at index " + (index + variant_offset)); + logger->log("No image at index %d", index + variant_offset); continue; } @@ -255,8 +255,7 @@ SpriteDef::loadAnimation(xmlNodePtr animationNode, if (!img) { - logger->log("No image at index " + - (start + variant_offset)); + logger->log("No image at index %d", start + variant_offset); continue; } diff --git a/src/simpleanimation.cpp b/src/simpleanimation.cpp index 18e732ef..f425d3c1 100644 --- a/src/simpleanimation.cpp +++ b/src/simpleanimation.cpp @@ -68,7 +68,7 @@ SimpleAnimation::SimpleAnimation(xmlNodePtr animationNode): if (!img) { - logger->log("No image at index " + (index)); + logger->log("No image at index %d", index); continue; } @@ -91,8 +91,7 @@ SimpleAnimation::SimpleAnimation(xmlNodePtr animationNode): if (!img) { - logger->log("No image at index " + - (start)); + logger->log("No image at index %d", start); continue; } -- cgit v1.2.3-60-g2f50 From d242b7ebd7927e8eb447ee866777cf48db15ae0c Mon Sep 17 00:00:00 2001 From: David Athay Date: Wed, 22 Oct 2008 10:37:08 +0000 Subject: Now displays ban time, if banned --- ChangeLog | 4 ++++ src/gui/ok_dialog.cpp | 31 ++++++++++++++++--------------- src/net/loginhandler.cpp | 6 ++++-- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index d1337e47..490bd5b6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-10-22 David Athay + + * src/gui/ok_dialog.cpp, src/net/loginhandler.cpp: Now shows ban time. + 2008-10-07 Bjørn Lindeijer * src/gui/updatewindow.cpp, src/particleemitter.cpp, diff --git a/src/gui/ok_dialog.cpp b/src/gui/ok_dialog.cpp index ca9d2a7b..90407d31 100644 --- a/src/gui/ok_dialog.cpp +++ b/src/gui/ok_dialog.cpp @@ -22,32 +22,33 @@ */ #include "ok_dialog.h" - -#include - +#include "textbox.h" #include "button.h" - +#include "scrollarea.h" OkDialog::OkDialog(const std::string &title, const std::string &msg, Window *parent): Window(title, true, parent) { - gcn::Label *textLabel = new gcn::Label(msg); + TextBox *textBox = new TextBox(); + textBox->setEditable(false); + + gcn::ScrollArea *scrollArea = new ScrollArea(textBox); gcn::Button *okButton = new Button("Ok", "ok", this); - int w = textLabel->getWidth() + 20; - int h = textLabel->getHeight() + 25 + okButton->getHeight(); + setContentSize(260, 175); + scrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); + scrollArea->setVerticalScrollPolicy(gcn::ScrollArea::SHOW_ALWAYS); + scrollArea->setDimension(gcn::Rectangle( + 5, 5, 250, 160 - okButton->getHeight())); - if (okButton->getWidth() + 10 > w) { - w = okButton->getWidth() + 10; - } + textBox->setTextWrapped(msg); - setContentSize(w, h); - textLabel->setPosition(10, 10); - okButton->setPosition((w - okButton->getWidth()) / 2, - h - 5 - okButton->getHeight()); + okButton->setPosition( + 260 - 5 - okButton->getWidth(), + 175 - 5 - okButton->getHeight()); - add(textLabel); + add(scrollArea); add(okButton); setLocationRelativeTo(getParent()); diff --git a/src/net/loginhandler.cpp b/src/net/loginhandler.cpp index fa74f489..19893a8e 100644 --- a/src/net/loginhandler.cpp +++ b/src/net/loginhandler.cpp @@ -110,10 +110,12 @@ void LoginHandler::handleMessage(MessageIn *msg) errorMessage = "Rejected from server"; break; case 4: - errorMessage = "You have been banned from the game. Please contact 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. 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"; -- cgit v1.2.3-60-g2f50 From a18daa91c8aa12307c5d73fdb2a83a3cce92d20f Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Wed, 22 Oct 2008 19:52:01 +0000 Subject: Merged revisions 4145 via svnmerge from https://themanaworld.svn.sourceforge.net/svnroot/themanaworld/tmw/trunk With help from Kess (vargavind) ........ r4145 | b_lindeijer | 2008-04-20 19:29:11 +0200 (Sun, 20 Apr 2008) | 3 lines Added --data parameter to be used to specify where to get the data from when using --skipupdate. ........ --- ChangeLog | 5 +++++ src/main.cpp | 14 +++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 490bd5b6..a48ca311 100644 --- a/ChangeLog +++ b/ChangeLog @@ -365,6 +365,11 @@ * src/beingmanager.cpp: Fixed a bug, thanks GCC 4.3! +2008-04-20 Bjørn Lindeijer + + * src/main.cpp: Added --data parameter to be used to specify where to + get the data from when using --skipupdate. + 2008-04-18 David Athay * src/game.cpp, src/openglgraphics.cpp: Mac now uses Apple key for diff --git a/src/main.cpp b/src/main.cpp index 25dbe127..373dc100 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -148,6 +148,7 @@ struct Options std::string playername; std::string configPath; std::string updateHost; + std::string dataPath; }; /** @@ -257,6 +258,9 @@ void init_engine(const Options &options) resman->addToSearchPath(homeDir, false); // Add the main data directory to our PhysicsFS search path + if (!options.dataPath.empty()) { + resman->addToSearchPath(options.dataPath, true); + } resman->addToSearchPath("data", true); #if defined __APPLE__ CFBundleRef mainBundle = CFBundleGetMainBundle(); @@ -430,6 +434,7 @@ void printHelp() << " -h --help : Display this help" << std::endl << " -v --version : Display the version" << std::endl << " -u --skipupdate : Skip the update process" << std::endl + << " -d --data : Directory to load game data from" << std::endl << " -U --username : Login with this username" << std::endl << " -P --password : Login with this password" << std::endl << " -D --default : Bypass the login process with default settings" << std::endl @@ -450,12 +455,13 @@ 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[] = { { "help", no_argument, 0, 'h' }, { "version", no_argument, 0, 'v' }, { "skipupdate", no_argument, 0, 'u' }, + { "data", required_argument, 0, 'd' }, { "username", required_argument, 0, 'U' }, { "password", required_argument, 0, 'P' }, { "default", no_argument, 0, 'D' }, @@ -469,9 +475,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) { default: // Unknown option @@ -484,6 +489,9 @@ void parseOptions(int argc, char *argv[], Options &options) case 'u': options.skipUpdate = true; break; + case 'd': + options.dataPath = optarg; + break; case 'U': options.username = optarg; break; -- cgit v1.2.3-60-g2f50 From c650e2b6338cf4b18b0968623d12ef95a7b820fc Mon Sep 17 00:00:00 2001 From: Dennis Friis Date: Thu, 23 Oct 2008 14:20:07 +0000 Subject: Add support for new athena trade-add failure condition; no free slot. --- ChangeLog | 5 +++++ src/net/tradehandler.cpp | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index a48ca311..cad907ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-10-23 Dennis Friis + + * src/net/tradehandler.cpp: Add support for new athena trade-add + failure condition; no free slot. + 2008-10-22 David Athay * src/gui/ok_dialog.cpp, src/net/loginhandler.cpp: Now shows ban time. diff --git a/src/net/tradehandler.cpp b/src/net/tradehandler.cpp index 9599fa9d..e2f7b998 100644 --- a/src/net/tradehandler.cpp +++ b/src/net/tradehandler.cpp @@ -130,7 +130,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; @@ -189,6 +189,12 @@ void TradeHandler::handleMessage(MessageIn *msg) "partner is over weighted.", BY_SERVER); break; + case 2: + // Add item failed - player has no free slot + chatWindow->chatLog("Failed adding item. Trade " + "partner has no free slot.", + BY_SERVER); + break; default: chatWindow->chatLog("Failed adding item for " "unknown reason.", BY_SERVER); -- cgit v1.2.3-60-g2f50 From 56410d9ff28448a73be7a7d115d54c1ee578972c Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Sun, 26 Oct 2008 01:46:40 +0000 Subject: Implemented particle emitters with properties which change over time according to wave functions. --- ChangeLog | 8 ++++ src/CMakeLists.txt | 2 +- src/Makefile.am | 2 +- src/particle.cpp | 2 +- src/particleemitter.cpp | 100 ++++++++++++++++++++++++----------------- src/particleemitter.h | 37 +++++++-------- src/particleemitterprop.h | 112 ++++++++++++++++++++++++++++++++++++++++++++++ src/utils/minmax.h | 50 --------------------- tmw.cbp | 29 +++++++++--- 9 files changed, 225 insertions(+), 117 deletions(-) create mode 100644 src/particleemitterprop.h delete mode 100644 src/utils/minmax.h diff --git a/ChangeLog b/ChangeLog index cad907ba..afdc97da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-10-26 Philipp Sehmisch + + * src/particle.cpp, src/particleemitter.cpp, src/particleemitter.h, + src/particleemitterprop.h, src/utils/minmax.h: Implemented particle + emitters with properties which change over time according to wave + functions. + * src/Makefile.am, src/CMakeLists.txt, tmw.cbp: Updated project files. + 2008-10-23 Dennis Friis * src/net/tradehandler.cpp: Add support for new athena trade-add diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 20f2f761..94ee854a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -265,7 +265,6 @@ SET(SRCS utils/base64.h utils/dtor.h utils/fastsqrt.h - utils/minmax.h utils/strprintf.cpp utils/strprintf.h utils/tostring.h @@ -328,6 +327,7 @@ SET(SRCS particle.h particleemitter.cpp particleemitter.h + particleemitterprop.h player.cpp player.h player_relations.cpp diff --git a/src/Makefile.am b/src/Makefile.am index 340f1947..867953ab 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -215,7 +215,6 @@ tmw_SOURCES = gui/widgets/resizegrip.cpp \ utils/base64.h \ utils/dtor.h \ utils/fastsqrt.h \ - utils/minmax.h \ utils/strprintf.cpp \ utils/strprintf.h \ utils/tostring.h \ @@ -278,6 +277,7 @@ tmw_SOURCES = gui/widgets/resizegrip.cpp \ particle.h \ particleemitter.cpp \ particleemitter.h \ + particleemitterprop.h \ player.cpp \ player.h \ player_relations.cpp \ diff --git a/src/particle.cpp b/src/particle.cpp index 8591838f..1521e75b 100644 --- a/src/particle.cpp +++ b/src/particle.cpp @@ -181,7 +181,7 @@ Particle::update() e++ ) { - Particles newParticles = (*e)->createParticles(); + Particles newParticles = (*e)->createParticles(mLifetimePast); for ( ParticleIterator p = newParticles.begin(); p != newParticles.end(); p++ diff --git a/src/particleemitter.cpp b/src/particleemitter.cpp index 816a5d28..bb4a7c6e 100644 --- a/src/particleemitter.cpp +++ b/src/particleemitter.cpp @@ -74,20 +74,22 @@ ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, Map * if (name == "position-x") { - mParticlePosX = readMinMax(propertyNode, 0.0f); + mParticlePosX = readParticleEmitterProp(propertyNode, 0.0f); } else if (name == "position-y") { - mParticlePosY = readMinMax(propertyNode, 0.0f); + mParticlePosY = readParticleEmitterProp(propertyNode, 0.0f); mParticlePosY.minVal *= SIN45; mParticlePosY.maxVal *= SIN45; + mParticlePosY.changeAmplitude *= SIN45; } else if (name == "position-z") { - mParticlePosZ = readMinMax(propertyNode, 0.0f); + mParticlePosZ = readParticleEmitterProp(propertyNode, 0.0f); mParticlePosZ.minVal *= SIN45; mParticlePosZ.maxVal *= SIN45; + mParticlePosZ.changeAmplitude *= SIN45; } else if (name == "image") { @@ -101,70 +103,72 @@ ParticleEmitter::ParticleEmitter(xmlNodePtr emitterNode, Particle *target, Map * } else if (name == "horizontal-angle") { - mParticleAngleHorizontal = readMinMax(propertyNode, 0.0f); + mParticleAngleHorizontal = readParticleEmitterProp(propertyNode, 0.0f); mParticleAngleHorizontal.minVal *= DEG_RAD_FACTOR; mParticleAngleHorizontal.maxVal *= DEG_RAD_FACTOR; + mParticleAngleHorizontal.changeAmplitude *= DEG_RAD_FACTOR; } else if (name == "vertical-angle") { - mParticleAngleVertical = readMinMax(propertyNode, 0.0f); + mParticleAngleVertical = readParticleEmitterProp(propertyNode, 0.0f); mParticleAngleVertical.minVal *= DEG_RAD_FACTOR; mParticleAngleVertical.maxVal *= DEG_RAD_FACTOR; + mParticleAngleVertical.changeAmplitude *= DEG_RAD_FACTOR; } else if (name == "power") { - mParticlePower = readMinMax(propertyNode, 0.0f); + mParticlePower = readParticleEmitterProp(propertyNode, 0.0f); } else if (name == "gravity") { - mParticleGravity = readMinMax(propertyNode, 0.0f); + mParticleGravity = readParticleEmitterProp(propertyNode, 0.0f); } else if (name == "randomnes" || name == "randomness") // legacy bug { - mParticleRandomness = readMinMax(propertyNode, 0); + mParticleRandomness = readParticleEmitterProp(propertyNode, 0); } else if (name == "bounce") { - mParticleBounce = readMinMax(propertyNode, 0.0f); + mParticleBounce = readParticleEmitterProp(propertyNode, 0.0f); } else if (name == "lifetime") { - mParticleLifetime = readMinMax(propertyNode, 0); + mParticleLifetime = readParticleEmitterProp(propertyNode, 0); mParticleLifetime.minVal += 1; } else if (name == "output") { - mOutput = readMinMax(propertyNode, 0); + mOutput = readParticleEmitterProp(propertyNode, 0); mOutput.maxVal +=1; } else if (name == "output-pause") { - mOutputPause = readMinMax(propertyNode, 0); - mOutputPauseLeft = mOutputPause.value(); + mOutputPause = readParticleEmitterProp(propertyNode, 0); + mOutputPauseLeft = mOutputPause.value(0); } else if (name == "acceleration") { - mParticleAcceleration = readMinMax(propertyNode, 0.0f); + mParticleAcceleration = readParticleEmitterProp(propertyNode, 0.0f); } else if (name == "die-distance") { - mParticleDieDistance = readMinMax(propertyNode, 0.0f); + mParticleDieDistance = readParticleEmitterProp(propertyNode, 0.0f); } else if (name == "momentum") { - mParticleMomentum = readMinMax(propertyNode, 1.0f); + mParticleMomentum = readParticleEmitterProp(propertyNode, 1.0f); } else if (name == "fade-out") { - mParticleFadeOut = readMinMax(propertyNode, 0); + mParticleFadeOut = readParticleEmitterProp(propertyNode, 0); } else if (name == "fade-in") { - mParticleFadeIn = readMinMax(propertyNode, 0); + mParticleFadeIn = readParticleEmitterProp(propertyNode, 0); } else if (name == "alpha") { - mParticleAlpha = readMinMax(propertyNode, 1.0f); + mParticleAlpha = readParticleEmitterProp(propertyNode, 1.0f); } else if (name == "follow-parent") { @@ -299,21 +303,35 @@ ParticleEmitter::~ParticleEmitter() } -template MinMax -ParticleEmitter::readMinMax(xmlNodePtr propertyNode, T def) +template ParticleEmitterProp +ParticleEmitter::readParticleEmitterProp(xmlNodePtr propertyNode, T def) { - MinMax retval; + ParticleEmitterProp retval; def = (T) XML::getFloatProperty(propertyNode, "value", (double) def); retval.set((T) XML::getFloatProperty(propertyNode, "min", (double) def), (T) XML::getFloatProperty(propertyNode, "max", (double) def)); + std::string change = XML::getProperty(propertyNode, "change-func", "none"); + T amplitude = (T) XML::getFloatProperty(propertyNode, "change-amplitude", 0.0); + int period = XML::getProperty(propertyNode, "change-period", 0); + int phase = XML::getProperty(propertyNode, "change-phase", 0); + if (change == "saw" || change == "sawtooth") { + retval.setFunction(FUNC_SAW, amplitude, period, phase); + } else if (change == "sine" || change == "sinewave") { + retval.setFunction(FUNC_SINE, amplitude, period, phase); + } else if (change == "triangle") { + retval.setFunction(FUNC_TRIANGLE, amplitude, period, phase); + } else if (change == "square"){ + retval.setFunction(FUNC_SQUARE, amplitude, period, phase); + } + return retval; } std::list -ParticleEmitter::createParticles() +ParticleEmitter::createParticles(int tick) { std::list newParticles; @@ -322,9 +340,9 @@ ParticleEmitter::createParticles() mOutputPauseLeft--; return newParticles; } - mOutputPauseLeft = mOutputPause.value(); + mOutputPauseLeft = mOutputPause.value(tick); - for (int i = mOutput.value(); i > 0; i--) + for (int i = mOutput.value(tick); i > 0; i--) { // Limit maximum particles if (Particle::particleCount > Particle::maxCount) break; @@ -346,33 +364,33 @@ ParticleEmitter::createParticles() newParticle->setPosition( - mParticlePosX.value(), - mParticlePosY.value(), - mParticlePosZ.value()); + mParticlePosX.value(tick), + mParticlePosY.value(tick), + mParticlePosZ.value(tick)); - float angleH = mParticleAngleHorizontal.value(); - float angleV = mParticleAngleVertical.value(); - float power = mParticlePower.value(); + float angleH = mParticleAngleHorizontal.value(tick); + float angleV = mParticleAngleVertical.value(tick); + float power = mParticlePower.value(tick); newParticle->setVelocity( cos(angleH) * cos(angleV) * power, sin(angleH) * cos(angleV) * power, sin(angleV) * power); - newParticle->setRandomness(mParticleRandomness.value()); - newParticle->setGravity(mParticleGravity.value()); - newParticle->setBounce(mParticleBounce.value()); + newParticle->setRandomness(mParticleRandomness.value(tick)); + newParticle->setGravity(mParticleGravity.value(tick)); + newParticle->setBounce(mParticleBounce.value(tick)); newParticle->setFollow(mParticleFollow); newParticle->setDestination(mParticleTarget, - mParticleAcceleration.value(), - mParticleMomentum.value() + mParticleAcceleration.value(tick), + mParticleMomentum.value(tick) ); - newParticle->setDieDistance(mParticleDieDistance.value()); + newParticle->setDieDistance(mParticleDieDistance.value(tick)); - newParticle->setLifetime(mParticleLifetime.value()); - newParticle->setFadeOut(mParticleFadeOut.value()); - newParticle->setFadeIn(mParticleFadeIn.value()); - newParticle->setAlpha(mParticleAlpha.value()); + newParticle->setLifetime(mParticleLifetime.value(tick)); + newParticle->setFadeOut(mParticleFadeOut.value(tick)); + newParticle->setFadeIn(mParticleFadeIn.value(tick)); + newParticle->setAlpha(mParticleAlpha.value(tick)); for (std::list::iterator i = mParticleChildEmitters.begin(); i != mParticleChildEmitters.end(); diff --git a/src/particleemitter.h b/src/particleemitter.h index 5cf3fd46..4ef088f6 100644 --- a/src/particleemitter.h +++ b/src/particleemitter.h @@ -27,10 +27,11 @@ #include #include "utils/xml.h" -#include "utils/minmax.h" #include "resources/animation.h" +#include "particleemitterprop.h" + class Image; class Map; class Particle; @@ -66,7 +67,7 @@ class ParticleEmitter * Spawns new particles * @return: a list of created particles */ - std::list createParticles(); + std::list createParticles(int tick); /** * Sets the target of the particles that are created @@ -76,50 +77,50 @@ class ParticleEmitter { mParticleTarget = target; }; private: - template MinMax readMinMax(xmlNodePtr propertyNode, T def); + template ParticleEmitterProp readParticleEmitterProp(xmlNodePtr propertyNode, T def); /** * initial position of particles: */ - MinMax mParticlePosX, mParticlePosY, mParticlePosZ; + ParticleEmitterProp mParticlePosX, mParticlePosY, mParticlePosZ; /** * initial vector of particles: */ - MinMax mParticleAngleHorizontal, mParticleAngleVertical; + ParticleEmitterProp mParticleAngleHorizontal, mParticleAngleVertical; /** * Initial velocity of particles */ - MinMax mParticlePower; + ParticleEmitterProp mParticlePower; /* * Vector changing of particles: */ - MinMax mParticleGravity; - MinMax mParticleRandomness; - MinMax mParticleBounce; + ParticleEmitterProp mParticleGravity; + ParticleEmitterProp mParticleRandomness; + ParticleEmitterProp mParticleBounce; bool mParticleFollow; /* * Properties of targeting particles: */ Particle *mParticleTarget; - MinMax mParticleAcceleration; - MinMax mParticleDieDistance; - MinMax mParticleMomentum; + ParticleEmitterProp mParticleAcceleration; + ParticleEmitterProp mParticleDieDistance; + ParticleEmitterProp mParticleMomentum; /* * Behavior over time of the particles: */ - MinMax mParticleLifetime; - MinMax mParticleFadeOut; - MinMax mParticleFadeIn; + ParticleEmitterProp mParticleLifetime; + ParticleEmitterProp mParticleFadeOut; + ParticleEmitterProp mParticleFadeIn; Map *mMap; /**< Map the particles are spawned on */ - MinMax mOutput; /**< Number of particles spawned per update */ - MinMax mOutputPause; /**< Pause in frames between two spawns */ + ParticleEmitterProp mOutput; /**< Number of particles spawned per update */ + ParticleEmitterProp mOutputPause; /**< Pause in frames between two spawns */ int mOutputPauseLeft; /* @@ -127,7 +128,7 @@ class ParticleEmitter */ Image *mParticleImage; /**< Particle image, if used */ Animation mParticleAnimation; /**< Filename of particle animation file */ - MinMax mParticleAlpha; /**< Opacity of the graphical representation of the particles */ + ParticleEmitterProp mParticleAlpha; /**< Opacity of the graphical representation of the particles */ /** List of emitters the spawned particles are equipped with */ std::list mParticleChildEmitters; diff --git a/src/particleemitterprop.h b/src/particleemitterprop.h new file mode 100644 index 00000000..e645c169 --- /dev/null +++ b/src/particleemitterprop.h @@ -0,0 +1,112 @@ +/* + * The Mana World + * Copyright 2006 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 + * + * $Id$ + */ + +#include +#include + +/** + * Returns a random numeric value that is larger than or equal min and smaller + * than max + */ + +enum ChangeFunc +{ + FUNC_NONE, + FUNC_SINE, + FUNC_SAW, + FUNC_TRIANGLE, + FUNC_SQUARE +}; + +template struct ParticleEmitterProp +{ + ParticleEmitterProp(): + changeFunc(FUNC_NONE) + { + } + + void set(T min, T max) + { + minVal=min; maxVal=max; + } + + void set(T val) + { + set(val, val); + } + + void setFunction(ChangeFunc func, T amplitude, int period, int phase) + { + changeFunc = func; + changeAmplitude = amplitude; + changePeriod = period; + changePhase = phase; + } + + T value(int tick) + { + tick += changePhase; + T val = (T) (minVal + (maxVal - minVal) * (rand() / ((double) RAND_MAX + 1))); + + switch (changeFunc) + { + case FUNC_SINE: + val += (T) std::sin(M_PI * 2 * ((double)(tick%changePeriod) / (double)changePeriod)) * changeAmplitude; + break; + case FUNC_SAW: + val += (T) (changeAmplitude * ((double)(tick%changePeriod) / (double)changePeriod)) * 2 - changeAmplitude; + break; + case FUNC_TRIANGLE: + if ((tick%changePeriod) * 2 < changePeriod) + { + val += changeAmplitude - (T)((tick%changePeriod) / (double)changePeriod) * changeAmplitude * 4; + } else { + val += changeAmplitude * -3 + (T)((tick%changePeriod) / (double)changePeriod) * changeAmplitude * 4; + // I have no idea why this works but it does + } + break; + case FUNC_SQUARE: + if ((tick%changePeriod) * 2 < changePeriod) + { + val += changeAmplitude; + } else { + val -= changeAmplitude; + } + break; + case FUNC_NONE: + default: + //nothing + break; + } + + return val; + } + + T minVal; + T maxVal; + + ChangeFunc changeFunc; + T changeAmplitude; + int changePeriod; + int changePhase; +}; diff --git a/src/utils/minmax.h b/src/utils/minmax.h deleted file mode 100644 index 427c5da7..00000000 --- a/src/utils/minmax.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * The Mana World - * Copyright 2006 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 - * - * $Id$ - */ - -#include - -/** - * Returns a random numeric value that is larger than or equal min and smaller - * than max - */ - -template struct MinMax -{ - void set(T min, T max) - { - minVal=min; maxVal=max; - } - - void set(T val) - { - set(val, val); - } - - T value() - { - return (T)(minVal + (maxVal - minVal) * (rand() / ((double) RAND_MAX + 1))); - } - - T minVal; - T maxVal; -}; diff --git a/tmw.cbp b/tmw.cbp index 9c009766..f108d01d 100644 --- a/tmw.cbp +++ b/tmw.cbp @@ -95,6 +95,8 @@ + + @@ -105,6 +107,8 @@ + + @@ -152,6 +156,8 @@ + + @@ -172,6 +178,7 @@ + @@ -274,6 +281,7 @@ + @@ -290,6 +298,7 @@ + @@ -301,6 +310,8 @@ + + @@ -341,22 +352,30 @@ + + + + - + + + + + + - - + + -- cgit v1.2.3-60-g2f50 From 62a5f6b90c447a73bf0459443a909cbec71dcb25 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sun, 26 Oct 2008 09:45:25 +0000 Subject: Since we somehow did end up depending on a hacked eAthena instead of supporting existing features decently, assign the shoes and gloves IDs. --- ChangeLog | 6 ++++++ src/net/beinghandler.cpp | 12 ++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index afdc97da..34d27d69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-10-26 Bjørn Lindeijer + + * src/net/beinghandler.cpp: Since we somehow did end up depending on a + hacked eAthena instead of supporting existing features decently, + assign the shoes and gloves IDs. + 2008-10-26 Philipp Sehmisch * src/particle.cpp, src/particleemitter.cpp, src/particleemitter.h, diff --git a/src/net/beinghandler.cpp b/src/net/beinghandler.cpp index 7a0be952..d0262ad9 100644 --- a/src/net/beinghandler.cpp +++ b/src/net/beinghandler.cpp @@ -130,10 +130,8 @@ void BeingHandler::handleMessage(MessageIn *msg) headTop = msg->readInt16(); headMid = msg->readInt16(); hairColor = msg->readInt16(); - msg->readInt16(); // clothes color - not used - msg->readInt16(); // head dir - shoes = 0; - gloves = 0; + shoes = msg->readInt16(); // clothes color - "abused" as shoes + gloves = msg->readInt16(); // head dir - "abused" as gloves msg->readInt16(); // guild msg->readInt16(); // unknown msg->readInt16(); // unknown @@ -403,10 +401,8 @@ void BeingHandler::handleMessage(MessageIn *msg) headTop = msg->readInt16(); headMid = msg->readInt16(); hairColor = msg->readInt16(); - shoes = 0; - gloves = 0; - msg->readInt16(); // clothes color - not used - msg->readInt16(); // head dir + shoes = msg->readInt16(); // clothes color - "abused" as shoes + gloves = msg->readInt16(); // head dir - "abused" as gloves msg->readInt32(); // guild msg->readInt32(); // emblem msg->readInt16(); // manner -- cgit v1.2.3-60-g2f50 From f924885ea0db5842b080610ec63e61a4bcc2a30c Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Tue, 28 Oct 2008 18:38:33 +0000 Subject: Fixed trade window being visible on client startup when it was visible on shutdown. Thanks to Trelos for looking into this problem. --- ChangeLog | 5 +++++ src/game.cpp | 1 + 2 files changed, 6 insertions(+) diff --git a/ChangeLog b/ChangeLog index 34d27d69..33a9fa50 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-10-28 Bjørn Lindeijer + + * src/game.cpp: Fixed trade window being visible on client startup + when it was visible on shutdown. + 2008-10-26 Bjørn Lindeijer * src/net/beinghandler.cpp: Since we somehow did end up depending on a diff --git a/src/game.cpp b/src/game.cpp index aaf5242c..3e3cb4b5 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -221,6 +221,7 @@ void createGuiWindows(Network *network) true)); buyDialog->setVisible(false); sellDialog->setVisible(false); + tradeWindow->setVisible(false); menuWindow->setVisible((bool) config.getValue( menuWindow->getWindowName() + "Visible", true)); itemShortcutWindow->setVisible((bool) config.getValue( -- cgit v1.2.3-60-g2f50 From d947a9ea994fa7bf4899b2460b1904557dfbc796 Mon Sep 17 00:00:00 2001 From: Dennis Friis Date: Tue, 28 Oct 2008 21:54:30 +0000 Subject: Handle NPC script close. Fixes client input freeze on no-dialog NPCs. --- ChangeLog | 5 +++++ src/net/npchandler.cpp | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 33a9fa50..380c4382 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-10-28 Dennis Friis + + * src/net/npchandler.cpp: Handle NPC script close. Fixes client input + freeze on no-dialog NPCs. + 2008-10-28 Bjørn Lindeijer * src/game.cpp: Fixed trade window being visible on client startup diff --git a/src/net/npchandler.cpp b/src/net/npchandler.cpp index da21b2a5..d41aaaad 100644 --- a/src/net/npchandler.cpp +++ b/src/net/npchandler.cpp @@ -70,9 +70,15 @@ void NPCHandler::handleMessage(MessageIn *msg) npcTextDialog->setVisible(true); break; - case SMSG_NPC_NEXT: case SMSG_NPC_CLOSE: - // Next/Close button in NPC dialog, currently unused + id = msg->readInt32(); + dynamic_cast(beingManager->findBeing(id)); + if (current_npc == dynamic_cast(beingManager->findBeing(id))) + current_npc = NULL; + break; + + case SMSG_NPC_NEXT: + // Next button in NPC dialog, currently unused break; } } -- cgit v1.2.3-60-g2f50 From 957da7a45ac7077b65f7ea00682d50345c3937f5 Mon Sep 17 00:00:00 2001 From: Dennis Friis Date: Thu, 30 Oct 2008 03:11:06 +0000 Subject: Do not set shoe sprite on player move packet unless supported by eAthena. --- ChangeLog | 4 ++++ src/net/beinghandler.cpp | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 380c4382..2c29afae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-10-30 Dennis Friis + * src/net/beinghandler.cpp: Do not set shoe sprite on player move + packet unless supported by eAthena. + 2008-10-28 Dennis Friis * src/net/npchandler.cpp: Handle NPC script close. Fixes client input diff --git a/src/net/beinghandler.cpp b/src/net/beinghandler.cpp index d0262ad9..101d1149 100644 --- a/src/net/beinghandler.cpp +++ b/src/net/beinghandler.cpp @@ -415,9 +415,9 @@ void BeingHandler::handleMessage(MessageIn *msg) dstBeing->setSprite(Being::BOTTOMCLOTHES_SPRITE, headBottom); dstBeing->setSprite(Being::TOPCLOTHES_SPRITE, headMid); dstBeing->setSprite(Being::HAT_SPRITE, headTop); - dstBeing->setSprite(Being::SHOE_SPRITE, shoes); - // Compensation for the unpatched TMW server - if (gloves > 10) + if (shoes > 10) // only if supported by eAthena + dstBeing->setSprite(Being::SHOE_SPRITE, shoes); + if (gloves > 10) // only if supported by eAthena dstBeing->setSprite(Being::GLOVES_SPRITE, gloves); dstBeing->setSprite(Being::CAPE_SPRITE, cape); dstBeing->setSprite(Being::MISC1_SPRITE, misc1); -- cgit v1.2.3-60-g2f50 From 779061286036dcee24c0dd65d01f71b8b1e234df Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Thu, 30 Oct 2008 22:22:55 +0000 Subject: Added particle effect on critical hits. --- ChangeLog | 5 +++++ src/net/beinghandler.cpp | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2c29afae..79a1567f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-10-30 Philipp Sehmisch + + * src/net/beinghandler.cpp: Added particle effect on critical + hits. + 2008-10-30 Dennis Friis * src/net/beinghandler.cpp: Do not set shoe sprite on player move packet unless supported by eAthena. diff --git a/src/net/beinghandler.cpp b/src/net/beinghandler.cpp index 101d1149..fa2b6728 100644 --- a/src/net/beinghandler.cpp +++ b/src/net/beinghandler.cpp @@ -235,8 +235,12 @@ void BeingHandler::handleMessage(MessageIn *msg) switch (type) { - case 0x00: // Damage case 0x0a: // Critical Damage + if (dstBeing) { + dstBeing->controlParticle(particleEngine->addEffect( + "graphics/particles/crit.particle.xml", 0, 0)); + } + case 0x00: // Damage if (dstBeing) { dstBeing->takeDamage(param1); } @@ -415,9 +419,9 @@ void BeingHandler::handleMessage(MessageIn *msg) dstBeing->setSprite(Being::BOTTOMCLOTHES_SPRITE, headBottom); dstBeing->setSprite(Being::TOPCLOTHES_SPRITE, headMid); dstBeing->setSprite(Being::HAT_SPRITE, headTop); - if (shoes > 10) // only if supported by eAthena - dstBeing->setSprite(Being::SHOE_SPRITE, shoes); - if (gloves > 10) // only if supported by eAthena + dstBeing->setSprite(Being::SHOE_SPRITE, shoes); + // Compensation for the unpatched TMW server + if (gloves > 10) dstBeing->setSprite(Being::GLOVES_SPRITE, gloves); dstBeing->setSprite(Being::CAPE_SPRITE, cape); dstBeing->setSprite(Being::MISC1_SPRITE, misc1); -- cgit v1.2.3-60-g2f50 From 885a9c145464a2b376edfd1c9677b84f6d4a8ce5 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 31 Oct 2008 20:25:35 +0000 Subject: Applied patch by vargavind which adds more special characters to the font. Somehow they were already part of the font image, but not used. --- ChangeLog | 10 ++++++++-- src/gui/gui.cpp | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 79a1567f..71b9986a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,15 @@ +2008-10-31 Bjørn Lindeijer + + * src/gui/gui.cpp: Applied patch by vargavind which adds more special + characters to the font. Somehow they were already part of the font + image, but not used. + 2008-10-30 Philipp Sehmisch - * src/net/beinghandler.cpp: Added particle effect on critical - hits. + * src/net/beinghandler.cpp: Added particle effect on critical hits. 2008-10-30 Dennis Friis + * src/net/beinghandler.cpp: Do not set shoe sprite on player move packet unless supported by eAthena. diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index db0b9f80..b9997d3a 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -107,7 +107,7 @@ Gui::Gui(Graphics *graphics): try { mGuiFont = new gcn::ImageFont("graphics/gui/sansserif8.png", " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[" - "\\]^_`abcdefghijklmnopqrstuvwxyz{|}~|" + "\\]^_`abcdefghijklmnopqrstuvwxyz{|}~|áÁéÉßøèÈ" ); } catch (gcn::Exception e) -- cgit v1.2.3-60-g2f50 From 4cfdb3620ccbd0de6bd53c5f22e7b6d3801627bf Mon Sep 17 00:00:00 2001 From: Fate Date: Sat, 1 Nov 2008 22:39:26 +0000 Subject: * Updated GUI table and model to better handle NULL widgets during initialisation * On SMSG_MOVE et al., ignore boots and glove information-- that information is incorrect and we're guaranteed to already have the correct information anyway. * Properly decode `is dead' information for PCs, so that dead players, when encountered, will be lying on the ground, dead, rather than standing. * Use `skills.xml' file from client data to determine skill names * Report client version number (hereby bumped to 1) in unused charserver slot (ignored by vanilla eAthena) --- ChangeLog | 24 +++++++ src/gui/skill.cpp | 174 ++++++++++++++++++++++++++++++++++------------- src/gui/skill.h | 12 ++-- src/gui/table.cpp | 11 ++- src/gui/table_model.cpp | 10 ++- src/gui/table_model.h | 11 ++- src/main.cpp | 3 +- src/net/beinghandler.cpp | 19 +++--- src/net/network.h | 4 ++ src/net/skillhandler.cpp | 1 + 10 files changed, 202 insertions(+), 67 deletions(-) diff --git a/ChangeLog b/ChangeLog index 71b9986a..181a1de6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,27 @@ +2008-11-01 Fate + + * src/gui/skill.cpp (SkillDialog): Display skills using a table + and using an external `skills.xml' file + (SkillDialog::update): No longer segfault when skills beyond 199 + are reported + + * src/gui/table_model.cpp: Several fixes to tables and table + models to better handle `NULL' widgets and `NULL' models during + initialisation. + + * src/main.cpp (charLogin): Send client protocol version to + character server (this is ignored in vanilla eAthena). + + * src/net/network.h (TMW_CLIENT_PROTOCOL_VERSION): Record client + protocol version + + * src/net/beinghandler.cpp (BeingHandler::handleMessage): Properly + decode whether character is dead + (BeingHandler::handleMessage): for SMSG_PLAYER_MOVE et al., ignore + shoe and glove updates-- they are incorrect and not needed (we get + them correctly when the PC is spawned for the client and they are + updated as needed by other packages.) + 2008-10-31 Bjørn Lindeijer * src/gui/gui.cpp: Applied patch by vargavind which adds more special diff --git a/src/gui/skill.cpp b/src/gui/skill.cpp index 3ab40c9a..c753ee1a 100644 --- a/src/gui/skill.cpp +++ b/src/gui/skill.cpp @@ -35,48 +35,103 @@ #include "../localplayer.h" #include "../utils/dtor.h" +#include "utils/xml.h" +#include "log.h" -const char *skill_db[] = { - // 0-99 - "", "Basic", "Sword", "Two hand", "HP regeneration", "Bash", "Provoke", "Magnum", "Endure", "MP regeneration", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "MAX weight", "Discount", "Overcharge", "", - "Identify", "", "", "", "", "", "", "", "Double", "Miss", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - // 100-199 - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "First aid", "Play as dead", "Moving recovery", "Fatal blow", "Auto berserk", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", - "", "", "", "", "", "", "", "", "", "", +#define SKILLS_FILE "skills.xml" + +struct SkillInfo { + std::string name; + bool modifiable; +}; + +std::vector skill_db; + +static void initSkillinfo(void); + +class SkillGuiTableModel : public StaticTableModel +{ +public: + SkillGuiTableModel(SkillDialog *dialog) : + StaticTableModel(0, 3) + { + mEntriesNr = 0; + mDialog = dialog; + update(); + } + + virtual int + getRows(void) { return mEntriesNr; } + + virtual int + getColumnWidth(int index) + { + switch (index) { + case 0: return 160; + default: return 35; + } + } + + virtual int + getRowHeight(void) + { + return 12; + } + + virtual void + update(void) + { + mEntriesNr = mDialog->getSkills().size(); + resize(); + + for (int i = 0; i < mEntriesNr; i++) { + SKILL *skill = mDialog->getSkills()[i]; + SkillInfo *info = &skill_db[skill->id]; + char tmp[128]; + + sprintf(tmp, "%c%s", info->modifiable? ' ' : '*', info->name.c_str()); + gcn::Label *name_label = new gcn::Label(std::string(tmp)); + + sprintf(tmp, "Lv:%i", skill->lv); + gcn::Label *lv_label = new gcn::Label(std::string(tmp)); + + sprintf(tmp, "Sp:%i", skill->sp); + gcn::Label *sp_label = new gcn::Label(std::string(tmp)); + + set(i, 0, name_label); + set(i, 1, lv_label); + set(i, 2, sp_label); + } + } + + +private: + SkillDialog *mDialog; + int mEntriesNr; }; SkillDialog::SkillDialog(): Window("Skills") { + initSkillinfo(); + mTableModel = new SkillGuiTableModel(this); + mTable.setModel(mTableModel); + mTable.setLinewiseSelection(true); + setWindowName("Skills"); setCloseButton(true); setDefaultSize(windowContainer->getWidth() - 255, 25, 240, 240); - mSkillListBox = new ListBox(this); - ScrollArea *skillScrollArea = new ScrollArea(mSkillListBox); +// mSkillListBox = new ListBox(this); + ScrollArea *skillScrollArea = new ScrollArea(&mTable); mPointsLabel = new gcn::Label("Skill Points:"); mIncButton = new Button("Up", "inc", this); mUseButton = new Button("Use", "use", this); mUseButton->setEnabled(false); - mSkillListBox->setActionEventId("skill"); +// mSkillListBox->setActionEventId("skill"); + mTable.setActionEventId("skill"); skillScrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); skillScrollArea->setDimension(gcn::Rectangle(5, 5, 230, 180)); @@ -90,7 +145,8 @@ SkillDialog::SkillDialog(): add(mIncButton); add(mUseButton); - mSkillListBox->addActionListener(this); +// mSkillListBox->addActionListener(this); + mTable.addActionListener(this); setLocationRelativeTo(getParent()); loadWindowState(); @@ -98,7 +154,6 @@ SkillDialog::SkillDialog(): SkillDialog::~SkillDialog() { - cleanList(); } void SkillDialog::action(const gcn::ActionEvent &event) @@ -106,7 +161,7 @@ void SkillDialog::action(const gcn::ActionEvent &event) if (event.getId() == "inc") { // Increment skill - int selectedSkill = mSkillListBox->getSelected(); + int selectedSkill = mTable.getSelectedRow();//mSkillListBox->getSelected(); if (selectedSkill >= 0) { player_node->raiseSkill(mSkillList[selectedSkill]->id); @@ -115,7 +170,7 @@ void SkillDialog::action(const gcn::ActionEvent &event) else if (event.getId() == "skill") { mIncButton->setEnabled( - mSkillListBox->getSelected() > -1 && + mTable.getSelectedRow() > -1 && player_node->mSkillPoint > 0); } else if (event.getId() == "close") @@ -132,8 +187,13 @@ void SkillDialog::update() mPointsLabel->setCaption(tmp); } - mIncButton->setEnabled(mSkillListBox->getSelected() > -1 && - player_node->mSkillPoint > 0); + int selectedSkill = mTable.getSelectedRow(); + + mIncButton->setEnabled(selectedSkill > -1 + && skill_db[mSkillList[selectedSkill]->id].modifiable + && player_node->mSkillPoint > 0); + + mTableModel->update(); } int SkillDialog::getNumberOfElements() @@ -141,20 +201,6 @@ int SkillDialog::getNumberOfElements() return mSkillList.size(); } -std::string SkillDialog::getElementAt(int i) -{ - if (i >= 0 && i < (int)mSkillList.size()) - { - char tmp[128]; - sprintf(tmp, "%s Lv: %i Sp: %i", - skill_db[mSkillList[i]->id], - mSkillList[i]->lv, - mSkillList[i]->sp); - return tmp; - } - return ""; -} - bool SkillDialog::hasSkill(int id) { for (unsigned int i = 0; i < mSkillList.size(); i++) { @@ -189,3 +235,39 @@ void SkillDialog::cleanList() for_each(mSkillList.begin(), mSkillList.end(), make_dtor(mSkillList)); mSkillList.clear(); } + +static void +initSkillinfo(void) +{ + SkillInfo emptySkillInfo = { "", false }; + + XML::Document doc(SKILLS_FILE); + xmlNodePtr root = doc.rootNode(); + + if (!root || !xmlStrEqual(root->name, BAD_CAST "skills")) + { + logger->log("Error loading skills file: " + SKILLS_FILE); + skill_db.resize(2, emptySkillInfo); + skill_db[1].name = "Basic"; + skill_db[1].modifiable = true; + return; + } + + for_each_xml_child_node(node, root) + { + if (xmlStrEqual(node->name, BAD_CAST "skill")) + { + int index = atoi(XML::getProperty(node, "id", "-1").c_str()); + std::string name = XML::getProperty(node, "name", ""); + bool modifiable = !atoi(XML::getProperty(node, "fixed", "0").c_str()); + + if (index >= 0) { + skill_db.resize(index + 1, emptySkillInfo); + skill_db[index].name = name; + skill_db[index].modifiable = modifiable; + } + } + } +} + diff --git a/src/gui/skill.h b/src/gui/skill.h index 6879640c..66ec35f3 100644 --- a/src/gui/skill.h +++ b/src/gui/skill.h @@ -30,6 +30,7 @@ #include #include "window.h" +#include "table.h" #include "../guichanfwd.h" @@ -38,13 +39,14 @@ struct SKILL { short lv, sp; }; +class SkillGuiTableModel; + /** * The skill dialog. * * \ingroup Interface */ -class SkillDialog : public Window, public gcn::ActionListener, - public gcn::ListModel +class SkillDialog : public Window, public gcn::ActionListener { public: /** @@ -62,15 +64,17 @@ class SkillDialog : public Window, public gcn::ActionListener, void update(); int getNumberOfElements(); - std::string getElementAt(int); bool hasSkill(int id); void addSkill(int id, int lv, int sp); void setSkill(int id, int lv, int sp); void cleanList(); + const std::vector& getSkills(void) const { return mSkillList; } + private: - gcn::ListBox *mSkillListBox; + GuiTable mTable;//gcn::ListBox *mSkillListBox; + SkillGuiTableModel *mTableModel; gcn::Label *mPointsLabel; gcn::Button *mIncButton; gcn::Button *mUseButton; diff --git a/src/gui/table.cpp b/src/gui/table.cpp index 89a93825..bddfbfed 100644 --- a/src/gui/table.cpp +++ b/src/gui/table.cpp @@ -105,8 +105,10 @@ GuiTable::setModel(TableModel *new_model) mModel = new_model; installActionListeners(); - new_model->installListener(this); - recomputeDimensions(); + if (new_model) { + new_model->installListener(this); + recomputeDimensions(); + } } @@ -187,6 +189,9 @@ GuiTable::uninstallActionListeners(void) void GuiTable::installActionListeners(void) { + if (!mModel) + return; + int rows = mModel->getRows(); int columns = mModel->getColumns(); @@ -367,7 +372,7 @@ GuiTable::getWidgetAt(int x, int y) if (row > -1 && column > -1) { gcn::Widget *w = mModel->getElementAt(row, column); - if (w->isFocusable()) + if (w && w->isFocusable()) return w; else return NULL; // Grab the event locally diff --git a/src/gui/table_model.cpp b/src/gui/table_model.cpp index 78df0636..57da29d9 100644 --- a/src/gui/table_model.cpp +++ b/src/gui/table_model.cpp @@ -70,11 +70,19 @@ StaticTableModel::~StaticTableModel(void) delete *it; } +void +StaticTableModel::resize(void) +{ + mRows = getRows(); + mColumns = getColumns(); + mTableModel.resize(mRows * mColumns, NULL); +} + void StaticTableModel::set(int row, int column, gcn::Widget *widget) { if (row >= mRows || row < 0 - || column >= mColumns || row > 0) + || column >= mColumns || column < 0) // raise exn? return; diff --git a/src/gui/table_model.h b/src/gui/table_model.h index 48ef1c0d..4be4e60e 100644 --- a/src/gui/table_model.h +++ b/src/gui/table_model.h @@ -120,9 +120,14 @@ public: */ virtual void fixRowHeight(int height); - virtual int getRows(); - virtual int getColumns(); - virtual int getRowHeight(); + /** + * Resizes the table model + */ + virtual void resize(void); + + 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/main.cpp b/src/main.cpp index 373dc100..6c9fe45c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -600,7 +600,8 @@ void charLogin(Network *network, LoginData *loginData) outMsg.writeInt32(loginData->account_ID); outMsg.writeInt32(loginData->session_ID1); outMsg.writeInt32(loginData->session_ID2); - outMsg.writeInt16(0); // unknown + // [Fate] The next word is unused by the old char server, so we squeeze in tmw client version information + outMsg.writeInt16(TMW_CLIENT_PROTOCOL_VERSION); outMsg.writeInt8(loginData->sex); // We get 4 useless bytes before the real answer comes in diff --git a/src/net/beinghandler.cpp b/src/net/beinghandler.cpp index fa2b6728..1f2463b3 100644 --- a/src/net/beinghandler.cpp +++ b/src/net/beinghandler.cpp @@ -405,8 +405,8 @@ void BeingHandler::handleMessage(MessageIn *msg) headTop = msg->readInt16(); headMid = msg->readInt16(); hairColor = msg->readInt16(); - shoes = msg->readInt16(); // clothes color - "abused" as shoes - gloves = msg->readInt16(); // head dir - "abused" as gloves + msg->readInt16(); // clothes color - Aethyra-"abused" as shoes, we ignore it + msg->readInt16(); // head dir - Aethyra-"abused" as gloves, we ignore it msg->readInt32(); // guild msg->readInt32(); // emblem msg->readInt16(); // manner @@ -419,10 +419,6 @@ void BeingHandler::handleMessage(MessageIn *msg) dstBeing->setSprite(Being::BOTTOMCLOTHES_SPRITE, headBottom); dstBeing->setSprite(Being::TOPCLOTHES_SPRITE, headMid); dstBeing->setSprite(Being::HAT_SPRITE, headTop); - dstBeing->setSprite(Being::SHOE_SPRITE, shoes); - // Compensation for the unpatched TMW server - if (gloves > 10) - dstBeing->setSprite(Being::GLOVES_SPRITE, gloves); dstBeing->setSprite(Being::CAPE_SPRITE, cape); dstBeing->setSprite(Being::MISC1_SPRITE, misc1); dstBeing->setSprite(Being::MISC2_SPRITE, misc2); @@ -447,9 +443,14 @@ void BeingHandler::handleMessage(MessageIn *msg) if (msg->getId() == SMSG_PLAYER_UPDATE_1) { - if (msg->readInt8() == 2) - { - dstBeing->setAction(Being::SIT); + switch (msg->readInt8()) { + + case 1: dstBeing->setAction(Being::DEAD); + break; + + case 2: dstBeing->setAction(Being::SIT); + break; + } } else if (msg->getId() == SMSG_PLAYER_MOVE) diff --git a/src/net/network.h b/src/net/network.h index d6fec761..0326b6ce 100644 --- a/src/net/network.h +++ b/src/net/network.h @@ -29,6 +29,10 @@ #include #include +#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/skillhandler.cpp b/src/net/skillhandler.cpp index 828c2378..53cfda1a 100644 --- a/src/net/skillhandler.cpp +++ b/src/net/skillhandler.cpp @@ -73,6 +73,7 @@ void SkillHandler::handleMessage(MessageIn *msg) } } } + skillDialog->update(); break; case SMSG_SKILL_FAILED: -- cgit v1.2.3-60-g2f50 From 8f1bf397990729c3a807bbbe0b643bc97446c923 Mon Sep 17 00:00:00 2001 From: Fate Date: Sat, 1 Nov 2008 23:45:48 +0000 Subject: * Use hair.xml to determine hair colours (#514) * Auto-detect number of hair styles available (#514) --- ChangeLog | 4 +++ src/being.cpp | 95 ++++++++++++++++++++++++++++++++++++++++++++++--- src/being.h | 10 ++++-- src/gui/char_select.cpp | 6 ++-- src/player.cpp | 22 +++--------- 5 files changed, 110 insertions(+), 27 deletions(-) diff --git a/ChangeLog b/ChangeLog index 181a1de6..91e7de25 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2008-11-01 Fate + * src/being.cpp (initializeHair): Read hair colours from external + `hair.xml' file (clientdata) + (initializeHair): Auto-detect number of hair colours + * src/gui/skill.cpp (SkillDialog): Display skills using a table and using an external `skills.xml' file (SkillDialog::update): No longer segfault when skills beyond 199 diff --git a/src/being.cpp b/src/being.cpp index dca87677..1569fcc3 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -36,6 +36,7 @@ #include "localplayer.h" #include "text.h" +#include "resources/itemdb.h" #include "resources/resourcemanager.h" #include "resources/imageset.h" #include "resources/iteminfo.h" @@ -48,6 +49,7 @@ #include "utils/xml.h" #define BEING_EFFECTS_FILE "effects.xml" +#define HAIR_FILE "hair.xml" int Being::instances = 0; ImageSet *Being::emotionSet = NULL; @@ -145,8 +147,8 @@ Being::setPath(const Path &path) void Being::setHairStyle(int style, int color) { - mHairStyle = style < 0 ? mHairStyle : style % NR_HAIR_STYLES; - mHairColor = color < 0 ? mHairColor : color % NR_HAIR_COLORS; + mHairStyle = style < 0 ? mHairStyle : style % getHairStylesNr(); + mHairColor = color < 0 ? mHairColor : color % getHairColorsNr(); } void @@ -304,7 +306,7 @@ Being::setDirection(Uint8 direction) for (int i = 0; i < VECTOREND_SPRITE; i++) { - if (mSprites[i] != NULL) + if (mSprites[i] != NULL) mSprites[i]->setDirection(dir); } } @@ -516,7 +518,6 @@ Being::getHeight() const } - struct EffectDescription { std::string mGFXEffect; std::string mSFXEffect; @@ -609,3 +610,89 @@ Being::internalTriggerEffect(int effectId, bool sfx, bool gfx) sound.playSfx(ed->mSFXEffect); } } + + + + +static int hairStylesNr; +static int hairColorsNr; +static std::vector hairColors; + +static void +initializeHair(void); + +int +Being::getHairStylesNr(void) +{ + initializeHair(); + return hairStylesNr; +} + +int +Being::getHairColorsNr(void) +{ + initializeHair(); + return hairColorsNr; +} + +std::string +Being::getHairColor(int index) +{ + initializeHair(); + if (index < 0 || index >= hairColorsNr) + return "#000000"; + + return hairColors[index]; +} + +static bool hairInitialized = false; + +static void +initializeHair(void) +{ + if (hairInitialized) + return; + + // Hairstyles are encoded as negative numbers. Count how far negative we can go. + int hairstylesCtr = -1; + while (ItemDB::get(hairstylesCtr).getSprite(0) != "error.xml") + --hairstylesCtr; + + hairStylesNr = -hairstylesCtr; // done. + if (hairStylesNr == 0) + hairStylesNr = 1; // No hair style -> no hair + + hairColorsNr = 0; + + XML::Document doc(HAIR_FILE); + xmlNodePtr root = doc.rootNode(); + + if (!root || !xmlStrEqual(root->name, BAD_CAST "colors")) + { + logger->log("Error loading being hair configuration file"); + } else { + for_each_xml_child_node(node, root) + { + if (xmlStrEqual(node->name, BAD_CAST "color")) + { + int index = atoi(XML::getProperty(node, "id", "-1").c_str()); + std::string value = XML::getProperty(node, "value", ""); + + if (index >= 0 && value != "") { + if (index >= hairColorsNr) { + hairColorsNr = index + 1; + hairColors.resize(hairColorsNr, "#000000"); + } + hairColors[index] = value; + } + } + } + } // done initializing + + if (hairColorsNr == 0) { // No colours -> black only + hairColorsNr = 1; + hairColors.resize(hairColorsNr, "#000000"); + } + + hairInitialized = 1; +} diff --git a/src/being.h b/src/being.h index d5fe7790..76317797 100644 --- a/src/being.h +++ b/src/being.h @@ -34,9 +34,6 @@ #include "map.h" #include "animatedsprite.h" -#define NR_HAIR_STYLES 8 -#define NR_HAIR_COLORS 10 - #define FIRST_IGNORE_EMOTE 14 class AnimatedSprite; @@ -370,6 +367,13 @@ class Being : public Sprite const std::auto_ptr mEquipment; + + static int getHairColorsNr(void); + + static int getHairStylesNr(void); + + static std::string getHairColor(int index); + protected: /** * Sets the new path for this being. diff --git a/src/gui/char_select.cpp b/src/gui/char_select.cpp index 8ab3b879..661a9fa7 100644 --- a/src/gui/char_select.cpp +++ b/src/gui/char_select.cpp @@ -256,7 +256,7 @@ CharCreateDialog::CharCreateDialog(Window *parent, int slot, Network *network, { mPlayer = new Player(0, 0, NULL); mPlayer->setGender(gender); - mPlayer->setHairStyle(rand() % NR_HAIR_STYLES, rand() % NR_HAIR_COLORS); + mPlayer->setHairStyle(rand() % Being::getHairStylesNr(), rand() % Being::getHairColorsNr()); mNameField = new TextField(""); mNameLabel = new gcn::Label("Name:"); @@ -340,13 +340,13 @@ CharCreateDialog::action(const gcn::ActionEvent &event) mPlayer->setHairStyle(-1, mPlayer->getHairColor() + 1); } else if (event.getId() == "prevcolor") { - mPlayer->setHairStyle(-1, mPlayer->getHairColor() + NR_HAIR_COLORS - 1); + mPlayer->setHairStyle(-1, mPlayer->getHairColor() + Being::getHairColorsNr() - 1); } else if (event.getId() == "nextstyle") { mPlayer->setHairStyle(mPlayer->getHairStyle() + 1, -1); } else if (event.getId() == "prevstyle") { - mPlayer->setHairStyle(mPlayer->getHairStyle() + NR_HAIR_STYLES - 1, -1); + mPlayer->setHairStyle(mPlayer->getHairStyle() + Being::getHairStylesNr() - 1, -1); } } diff --git a/src/player.cpp b/src/player.cpp index f86e7179..0e88da0b 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -140,27 +140,13 @@ void Player::setGender(int gender) void Player::setHairStyle(int style, int color) { - style = style < 0 ? mHairStyle : style % NR_HAIR_STYLES; - color = color < 0 ? mHairColor : color % NR_HAIR_COLORS; + style = style < 0 ? mHairStyle : style % getHairStylesNr(); + color = color < 0 ? mHairColor : color % getHairColorsNr(); if (style == mHairStyle && color == mHairColor) return; Being::setHairStyle(style, color); - static char const *const colors[NR_HAIR_COLORS] = - { - "#8c4b41,da9041,ffffff", // light brown - "#06372b,489e25,fdedcc", // green - "#5f0b33,91191c,f9ad81", // red - "#602486,934cc3,fdc689", // purple - "#805e74,c6b09b,ffffff", // gray - "#8c6625,dab425,ffffff", // yellow - "#1d2d6d,1594a3,fdedcc", // blue - "#831f2d,be4f2d,f8cc8b", // brown - "#432482,584bbc,dae8e5", // light blue - "#460850,611967,e7b4ae", // dark purple - }; - - setSprite(HAIR_SPRITE, style * -1, colors[color]); + setSprite(HAIR_SPRITE, style * -1, getHairColor(color)); setAction(mAction); } @@ -209,3 +195,5 @@ void Player::updateCoords() mName->adviseXY(mPx + NAME_X_OFFSET, mPy + NAME_Y_OFFSET); } } + + -- cgit v1.2.3-60-g2f50 From 8c54f034a288168cc191410b366889f37255ab21 Mon Sep 17 00:00:00 2001 From: Fate Date: Sat, 1 Nov 2008 23:56:14 +0000 Subject: * Report unmapped skill names as `Mystery Skill' (rather than random characters) --- ChangeLog | 3 +++ src/gui/skill.cpp | 26 ++++++++++++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 91e7de25..21ee74f2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2008-11-01 Fate + * src/gui/skill.cpp (class SkillGuiTableModel): Report unmapped + skill names as `Mystery Skill' (rather than random garbage) + * src/being.cpp (initializeHair): Read hair colours from external `hair.xml' file (clientdata) (initializeHair): Auto-detect number of hair colours diff --git a/src/gui/skill.cpp b/src/gui/skill.cpp index c753ee1a..116e1860 100644 --- a/src/gui/skill.cpp +++ b/src/gui/skill.cpp @@ -81,14 +81,22 @@ public: virtual void update(void) { + static const SkillInfo fakeSkillInfo = { "Mystery Skill", false }; + mEntriesNr = mDialog->getSkills().size(); resize(); for (int i = 0; i < mEntriesNr; i++) { SKILL *skill = mDialog->getSkills()[i]; - SkillInfo *info = &skill_db[skill->id]; + SkillInfo const *info; char tmp[128]; + if (skill->id >= 0 + && (unsigned int) skill->id < skill_db.size()) + info = &skill_db[skill->id]; + else + info = &fakeSkillInfo; + sprintf(tmp, "%c%s", info->modifiable? ' ' : '*', info->name.c_str()); gcn::Label *name_label = new gcn::Label(std::string(tmp)); @@ -189,9 +197,19 @@ void SkillDialog::update() int selectedSkill = mTable.getSelectedRow(); - mIncButton->setEnabled(selectedSkill > -1 - && skill_db[mSkillList[selectedSkill]->id].modifiable - && player_node->mSkillPoint > 0); + 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); + } else + mIncButton->setEnabled(false); mTableModel->update(); } -- cgit v1.2.3-60-g2f50 From 75699101c3710405fe4dedb420b3f3b63436cc28 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Tue, 4 Nov 2008 19:51:05 +0000 Subject: Applied more changes by vargavind, adding the complete ISO-8859-15 character set to the sans-serif font. --- ChangeLog | 6 ++++++ data/graphics/gui/sansserif8.png | Bin 1261 -> 2134 bytes src/gui/gui.cpp | 16 +++++++++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 21ee74f2..0bc68213 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-11-04 Bjørn Lindeijer + + * src/gui/gui.cpp, data/graphics/gui/sansserif8.png: Applied more + changes by vargavind, adding the complete ISO-8859-15 character set to + the sans-serif font. + 2008-11-01 Fate * src/gui/skill.cpp (class SkillGuiTableModel): Report unmapped diff --git a/data/graphics/gui/sansserif8.png b/data/graphics/gui/sansserif8.png index 7eae7a1b..a4738548 100644 Binary files a/data/graphics/gui/sansserif8.png and b/data/graphics/gui/sansserif8.png differ diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index b9997d3a..12f19460 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -103,11 +103,21 @@ 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", - " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[" - "\\]^_`abcdefghijklmnopqrstuvwxyz{|}~|áÁéÉßøèÈ" + " !\"#$%&'()*+,-./" + "0123456789:;<=>?" + "@ABCDEFGHIJKLMNO" + "PQRSTUVWXYZ[\\]^_" + "`abcdefghijklmno" + "pqrstuvwxyz{|}~|" + " ¡¢£¤¥¦§¨©ª«¬­®¯" + "°±²³´µ¶·¸¹º»¼½¾¿" + "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ" + "ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß" + "àáâãäåæçèéêëìíîï" + "ðñòóôõö÷øùúûüýþÿ" ); } catch (gcn::Exception e) -- cgit v1.2.3-60-g2f50 From 1afaba7d73a6158abfbbbcc7d881170e5b3ddd50 Mon Sep 17 00:00:00 2001 From: Dennis Friis Date: Thu, 6 Nov 2008 01:53:49 +0000 Subject: Do not activate shortcuts if tradewindow is visible. --- ChangeLog | 4 ++++ src/game.cpp | 21 ++++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0bc68213..59b78674 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-11-06 Dennis Friis + + * src/game.cpp: Do not activate shortcuts if tradewindow is visible. + 2008-11-04 Bjørn Lindeijer * src/gui/gui.cpp, data/graphics/gui/sansserif8.png: Applied more diff --git a/src/game.cpp b/src/game.cpp index 3e3cb4b5..fc9183d4 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -664,15 +664,18 @@ void Game::handleInput() if (keyboard.isEnabled() && !chatWindow->isInputFocused()) { const int tKey = keyboard.getKeyIndex(event.key.keysym.sym); - // Checks if any item shortcut is pressed. - for (int i = KeyboardConfig::KEY_SHORTCUT_0; - i <= KeyboardConfig::KEY_SHORTCUT_9; - i++) - { - if (tKey == i && !used) { - itemShortcut->useItem( - i - KeyboardConfig::KEY_SHORTCUT_0); - break; + // Do not activate shortcuts if tradewindow is visible + if (!tradeWindow->isVisible()) + // Checks if any item shortcut is pressed. + for (int i = KeyboardConfig::KEY_SHORTCUT_0; + i <= KeyboardConfig::KEY_SHORTCUT_9; + i++) + { + if (tKey == i && !used) { + itemShortcut->useItem( + i - KeyboardConfig::KEY_SHORTCUT_0); + break; + } } } switch (tKey) { -- cgit v1.2.3-60-g2f50 From 3927112cf6e35bc582fa6c4de73875e423b8f86a Mon Sep 17 00:00:00 2001 From: Dennis Friis Date: Thu, 6 Nov 2008 02:22:47 +0000 Subject: Fix a missing brace that got lost on last commit (r4927) --- src/game.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/game.cpp b/src/game.cpp index fc9183d4..e08f45e4 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -666,6 +666,7 @@ void Game::handleInput() const int tKey = keyboard.getKeyIndex(event.key.keysym.sym); // Do not activate shortcuts if tradewindow is visible if (!tradeWindow->isVisible()) + { // Checks if any item shortcut is pressed. for (int i = KeyboardConfig::KEY_SHORTCUT_0; i <= KeyboardConfig::KEY_SHORTCUT_9; -- cgit v1.2.3-60-g2f50 From 9475a009e95a3f379a0e97bc66d1aab93ca24b34 Mon Sep 17 00:00:00 2001 From: Dennis Friis Date: Thu, 6 Nov 2008 13:59:03 +0000 Subject: Remove an extra include and arrange headers like the trunk client for easier merging. --- ChangeLog | 4 +++- src/equipment.cpp | 4 +--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 59b78674..31895fba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,8 @@ 2008-11-06 Dennis Friis - * src/game.cpp: Do not activate shortcuts if tradewindow is visible. + * src/game.cpp: Do not activate shortcuts if tradewindow is visible. + * src/equipment.cpp: Remove an extra include and arrange headers like + the trunk client for easier merging. 2008-11-04 Bjørn Lindeijer diff --git a/src/equipment.cpp b/src/equipment.cpp index d1f9a6cf..b54988a7 100644 --- a/src/equipment.cpp +++ b/src/equipment.cpp @@ -21,11 +21,9 @@ * $Id$ */ -#include "equipment.h" - #include -#include "item.h" +#include "equipment.h" #include "item.h" Equipment::Equipment(): -- cgit v1.2.3-60-g2f50 From 87f43f7621dda3071ba189df6975cd0a0595165a Mon Sep 17 00:00:00 2001 From: Dennis Friis Date: Thu, 6 Nov 2008 16:46:18 +0000 Subject: Have equipment tied into player inventory instead of keeping its own list of pointers to items. This ensures the ressource is up-to-date and avoids crashes on stale item pointers. --- ChangeLog | 6 ++++++ src/equipment.cpp | 20 ++++++++------------ src/equipment.h | 17 ++++++----------- src/gui/equipmentwindow.cpp | 20 ++++++++++++++------ src/gui/equipmentwindow.h | 2 ++ src/localplayer.cpp | 2 +- src/net/equipmenthandler.cpp | 8 ++++---- 7 files changed, 41 insertions(+), 34 deletions(-) diff --git a/ChangeLog b/ChangeLog index 31895fba..c95e33ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,12 @@ * src/game.cpp: Do not activate shortcuts if tradewindow is visible. * src/equipment.cpp: Remove an extra include and arrange headers like the trunk client for easier merging. + * src/localplayer.cpp, src/gui/equipmentwindow.cpp, + src/gui/equipmentwindow.h, src/equipment.h, + src/net/equipmenthandler.cpp, src/equipment.cpp: Have equipment tied + into player inventory instead of keeping its own list of pointers to + items. This ensures the ressource is up-to-date and avoids crashes on + stale item pointers. 2008-11-04 Bjørn Lindeijer diff --git a/src/equipment.cpp b/src/equipment.cpp index b54988a7..a8910d14 100644 --- a/src/equipment.cpp +++ b/src/equipment.cpp @@ -25,24 +25,20 @@ #include "equipment.h" #include "item.h" +#include "inventory.h" +#include "localplayer.h" Equipment::Equipment(): mArrows(0) { - std::fill_n(mEquipment, EQUIPMENT_SIZE, (Item*) 0); + std::fill_n(mEquipment, EQUIPMENT_SIZE, 0); } void -Equipment::removeEquipment(Item *item) +Equipment::setEquipment(int index, int inventoryIndex) { - Item **i = std::find(mEquipment, mEquipment + EQUIPMENT_SIZE, item); - if (i != mEquipment + EQUIPMENT_SIZE) { - *i = 0; - } -} - -void Equipment::setEquipment(int index, Item *item) -{ - mEquipment[index] = item; - item->setEquipped(true); + mEquipment[index] = inventoryIndex; + Item* item = player_node->getInventory()->getItem(inventoryIndex); + if (item) + item->setEquipped(true); } diff --git a/src/equipment.h b/src/equipment.h index 80a2ae49..e3b10514 100644 --- a/src/equipment.h +++ b/src/equipment.h @@ -39,14 +39,14 @@ class Equipment /** * Get equipment at the given slot. */ - Item* getEquipment(int index) const + int getEquipment(int index) const { return mEquipment[index]; } /** * Set equipment at the given slot. */ void - setEquipment(int index, Item *item); + setEquipment(int index, int inventoryIndex); /** * Remove equipment from the given slot. @@ -54,26 +54,21 @@ class Equipment void removeEquipment(int index) { mEquipment[index] = 0; } - /** - * Remove the given item from equipment. - */ - void removeEquipment(Item *item); - /** * Get the item used in the arrow slot. */ - Item* + int getArrows() { return mArrows; } /** * Set the item used in the arrow slot. */ void - setArrows(Item *arrows) { mArrows = arrows; } + setArrows(int arrows) { mArrows = arrows; } private: - Item *mEquipment[EQUIPMENT_SIZE]; - Item *mArrows; + int mEquipment[EQUIPMENT_SIZE]; + int mArrows; }; #endif diff --git a/src/gui/equipmentwindow.cpp b/src/gui/equipmentwindow.cpp index 93b9ea37..3ea2fcbc 100644 --- a/src/gui/equipmentwindow.cpp +++ b/src/gui/equipmentwindow.cpp @@ -24,6 +24,8 @@ #include "equipmentwindow.h" #include "../equipment.h" +#include "../inventory.h" +#include "../localplayer.h" #include "../graphics.h" #include "../item.h" #include "../log.h" @@ -40,6 +42,7 @@ EquipmentWindow::EquipmentWindow(Equipment *equipment): setCloseButton(true); setDefaultSize(5, 230, 200, 120); loadWindowState(); + inventory = player_node->getInventory(); } EquipmentWindow::~EquipmentWindow() @@ -61,22 +64,27 @@ void EquipmentWindow::draw(gcn::Graphics *graphics) graphics->drawRectangle(gcn::Rectangle(10 + 36 * (i % 4), 36 * (i / 4) + 25, 32, 32)); - if (!(item = mEquipment->getEquipment(i))) + if (!(item = inventory->getItem(mEquipment->getEquipment(i)))) continue; image = item->getImage(); - static_cast(graphics)->drawImage( - image, 36 * (i % 4) + 10, 36 * (i / 4) + 25); + if (image) + { + static_cast(graphics)->drawImage( + image, 36 * (i % 4) + 10, 36 * (i / 4) + 25); + } } graphics->drawRectangle(gcn::Rectangle(160, 25, 32, 32)); - if (!(item = mEquipment->getArrows())) + if (!(item = inventory->getItem(mEquipment->getArrows()))) return; image = item->getImage(); - - static_cast(graphics)->drawImage(image, 160, 25); + if (image) + { + static_cast(graphics)->drawImage(image, 160, 25); + } graphics->drawText(toString(item->getQuantity()), 170, 62, gcn::Graphics::CENTER); } diff --git a/src/gui/equipmentwindow.h b/src/gui/equipmentwindow.h index 99a3cc60..c853a039 100644 --- a/src/gui/equipmentwindow.h +++ b/src/gui/equipmentwindow.h @@ -25,6 +25,7 @@ #define _TMW_EQUIPMENT_H #include "window.h" +#include "../inventory.h" class Equipment; @@ -53,6 +54,7 @@ class EquipmentWindow : public Window private: Equipment *mEquipment; + Inventory *inventory; }; extern EquipmentWindow *equipmentWindow; diff --git a/src/localplayer.cpp b/src/localplayer.cpp index 3caa5ead..bb91711c 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -144,7 +144,7 @@ void LocalPlayer::unequipItem(Item *item) outMsg.writeInt16(item->getInvIndex()); // Tidy equipment directly to avoid weapon still shown bug, for instance - mEquipment->removeEquipment(item); + mEquipment->removeEquipment(item->getInvIndex()); } void LocalPlayer::useItem(Item *item) diff --git a/src/net/equipmenthandler.cpp b/src/net/equipmenthandler.cpp index 85790b42..eddc0ea0 100644 --- a/src/net/equipmenthandler.cpp +++ b/src/net/equipmenthandler.cpp @@ -87,7 +87,7 @@ void EquipmentHandler::handleMessage(MessageIn *msg) position++; } item = inventory->getItem(index); - player_node->mEquipment->setEquipment(position, item); + player_node->mEquipment->setEquipment(position, index); } } break; @@ -117,13 +117,13 @@ void EquipmentHandler::handleMessage(MessageIn *msg) position++; } logger->log("Position %i", position); - item = player_node->mEquipment->getEquipment(position); + item = player_node->getInventory()->getItem(player_node->mEquipment->getEquipment(position)); if (item) { item->setEquipped(false); } item = inventory->getItem(index); - player_node->mEquipment->setEquipment(position, item); + player_node->mEquipment->setEquipment(position, index); break; case SMSG_PLAYER_UNEQUIP: @@ -192,7 +192,7 @@ void EquipmentHandler::handleMessage(MessageIn *msg) break; item->setEquipped(true); - player_node->mEquipment->setArrows(item); + player_node->mEquipment->setArrows(index); logger->log("Arrows equipped: %i", index); break; } -- cgit v1.2.3-60-g2f50 From f96b25dc1f23fd88e0ae338cafaee791d6bf1f01 Mon Sep 17 00:00:00 2001 From: Dennis Friis Date: Thu, 6 Nov 2008 19:59:41 +0000 Subject: Arrange system includes after project includes as a tweak to r4929. --- src/equipment.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/equipment.cpp b/src/equipment.cpp index a8910d14..61b2d5b0 100644 --- a/src/equipment.cpp +++ b/src/equipment.cpp @@ -21,13 +21,13 @@ * $Id$ */ -#include - #include "equipment.h" #include "item.h" #include "inventory.h" #include "localplayer.h" +#include + Equipment::Equipment(): mArrows(0) { -- cgit v1.2.3-60-g2f50 From af58f011a36fdfda135ca6b71504f30cb561be6b Mon Sep 17 00:00:00 2001 From: Dennis Friis Date: Thu, 6 Nov 2008 20:17:51 +0000 Subject: Tweak member naming to fit conventions as a fix to r4934. --- src/gui/equipmentwindow.cpp | 6 +++--- src/gui/equipmentwindow.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/equipmentwindow.cpp b/src/gui/equipmentwindow.cpp index 3ea2fcbc..83e166c5 100644 --- a/src/gui/equipmentwindow.cpp +++ b/src/gui/equipmentwindow.cpp @@ -42,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() @@ -64,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(); @@ -77,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 c853a039..2130b7ce 100644 --- a/src/gui/equipmentwindow.h +++ b/src/gui/equipmentwindow.h @@ -54,7 +54,7 @@ class EquipmentWindow : public Window private: Equipment *mEquipment; - Inventory *inventory; + Inventory *mInventory; }; extern EquipmentWindow *equipmentWindow; -- cgit v1.2.3-60-g2f50 From 9311774ad6c1a37f95bb2511251719d74426cbb0 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 8 Nov 2008 16:17:30 +0000 Subject: Fixed compile error with GCC 4.4 reported by Martin Michlmayr. --- ChangeLog | 5 +++++ src/utils/strprintf.cpp | 6 +----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index c95e33ca..6d191f2f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-11-08 Bjørn Lindeijer + + * src/utils/strprintf.cpp: Fixed compile error with GCC 4.4 reported + by Martin Michlmayr. + 2008-11-06 Dennis Friis * src/game.cpp: Do not activate shortcuts if tradewindow is visible. diff --git a/src/utils/strprintf.cpp b/src/utils/strprintf.cpp index 352696f1..77a6b235 100644 --- a/src/utils/strprintf.cpp +++ b/src/utils/strprintf.cpp @@ -21,10 +21,8 @@ * $Id: strprintf.cpp 3416 2007-08-06 06:20:14Z gmelquio $ */ -#ifndef _TMW_UTILS_TOSTRING_H -#define _TMW_UTILS_TOSTRING_H - #include +#include #include "strprintf.h" @@ -49,5 +47,3 @@ std::string strprintf(char const *format, ...) delete [] buf2; return res; } - -#endif -- cgit v1.2.3-60-g2f50 From 12d50ac3bd08576ea23e00778463c3efa6b3a931 Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Tue, 11 Nov 2008 15:24:32 +0000 Subject: Fixed two broken include paths --- ChangeLog | 4 ++++ src/gui/skill.cpp | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6d191f2f..238c0cb1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-10-30 Philipp Sehmisch + + * src/gui/skil.cpp: fixed two broken include paths. + 2008-11-08 Bjørn Lindeijer * src/utils/strprintf.cpp: Fixed compile error with GCC 4.4 reported diff --git a/src/gui/skill.cpp b/src/gui/skill.cpp index 116e1860..178abe1f 100644 --- a/src/gui/skill.cpp +++ b/src/gui/skill.cpp @@ -35,8 +35,8 @@ #include "../localplayer.h" #include "../utils/dtor.h" -#include "utils/xml.h" -#include "log.h" +#include "../utils/xml.h" +#include "../log.h" #define SKILLS_FILE "skills.xml" -- cgit v1.2.3-60-g2f50 From 2567ca34a352d594531e53b47f47f54dcb31cb75 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sun, 16 Nov 2008 12:41:47 +0100 Subject: Ignore generated files --- .gitignore | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .gitignore 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 -- cgit v1.2.3-60-g2f50 From 8a458bbf5bc6fcfa66d6e96e0dea1ec20b2fd0d9 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sun, 16 Nov 2008 16:21:37 +0100 Subject: Got rid of CVS/Subversion $Id$ markers I don't know why we dealt with these things for so long. Did we ever get anything out of it? --- src/animatedsprite.cpp | 2 -- src/animatedsprite.h | 2 -- src/animationparticle.cpp | 1 - src/animationparticle.h | 1 - src/being.cpp | 2 -- src/being.h | 2 -- src/beingmanager.cpp | 2 -- src/beingmanager.h | 2 -- src/configlistener.h | 2 -- src/configuration.cpp | 2 -- src/configuration.h | 2 -- src/engine.cpp | 2 -- src/engine.h | 2 -- src/equipment.cpp | 2 -- src/equipment.h | 2 -- src/floor_item.cpp | 2 -- src/floor_item.h | 2 -- src/flooritemmanager.cpp | 2 -- src/flooritemmanager.h | 2 -- src/game.cpp | 2 -- src/game.h | 2 -- src/graphics.cpp | 2 -- src/graphics.h | 2 -- src/gui/box.cpp | 2 -- src/gui/box.h | 2 -- src/gui/browserbox.cpp | 2 -- src/gui/browserbox.h | 2 -- src/gui/buddywindow.cpp | 2 -- src/gui/buddywindow.h | 2 -- src/gui/button.cpp | 2 -- src/gui/button.h | 2 -- src/gui/buy.cpp | 2 -- src/gui/buy.h | 2 -- src/gui/buysell.cpp | 2 -- src/gui/buysell.h | 2 -- src/gui/char_select.cpp | 2 -- src/gui/char_select.h | 2 -- src/gui/char_server.cpp | 2 -- src/gui/char_server.h | 2 -- src/gui/chargedialog.cpp | 1 - src/gui/chargedialog.h | 1 - src/gui/chat.cpp | 2 -- src/gui/chat.h | 2 -- src/gui/chatinput.cpp | 2 -- src/gui/chatinput.h | 2 -- src/gui/checkbox.cpp | 2 -- src/gui/checkbox.h | 2 -- src/gui/confirm_dialog.cpp | 2 -- src/gui/confirm_dialog.h | 2 -- src/gui/connection.cpp | 2 -- src/gui/connection.h | 2 -- src/gui/debugwindow.cpp | 2 -- src/gui/debugwindow.h | 2 -- src/gui/equipmentwindow.cpp | 2 -- src/gui/equipmentwindow.h | 2 -- src/gui/focushandler.cpp | 2 -- src/gui/focushandler.h | 2 -- src/gui/gccontainer.cpp | 2 -- src/gui/gccontainer.h | 2 -- src/gui/gui.cpp | 2 -- src/gui/gui.h | 2 -- src/gui/hbox.cpp | 2 -- src/gui/hbox.h | 2 -- src/gui/help.cpp | 2 -- src/gui/help.h | 2 -- src/gui/inttextbox.cpp | 2 -- src/gui/inttextbox.h | 2 -- src/gui/inventorywindow.cpp | 2 -- src/gui/inventorywindow.h | 2 -- src/gui/item_amount.cpp | 2 -- src/gui/item_amount.h | 2 -- src/gui/itemcontainer.cpp | 2 -- src/gui/itemcontainer.h | 2 -- src/gui/itemshortcutcontainer.cpp | 2 -- src/gui/itemshortcutcontainer.h | 2 -- src/gui/itemshortcutwindow.cpp | 2 -- src/gui/itemshortcutwindow.h | 2 -- src/gui/linkhandler.h | 2 -- src/gui/listbox.cpp | 2 -- src/gui/listbox.h | 2 -- src/gui/login.cpp | 2 -- src/gui/login.h | 2 -- src/gui/menuwindow.cpp | 2 -- src/gui/menuwindow.h | 2 -- src/gui/minimap.cpp | 2 -- src/gui/minimap.h | 2 -- src/gui/ministatus.cpp | 2 -- src/gui/ministatus.h | 2 -- src/gui/newskill.cpp | 2 -- src/gui/newskill.h | 2 -- src/gui/npc_text.cpp | 2 -- src/gui/npc_text.h | 2 -- src/gui/npclistdialog.cpp | 2 -- src/gui/npclistdialog.h | 2 -- src/gui/ok_dialog.cpp | 2 -- src/gui/ok_dialog.h | 2 -- src/gui/passwordfield.cpp | 2 -- src/gui/passwordfield.h | 2 -- src/gui/playerbox.cpp | 2 -- src/gui/playerbox.h | 2 -- src/gui/popupmenu.cpp | 2 -- src/gui/popupmenu.h | 2 -- src/gui/progressbar.cpp | 2 -- src/gui/progressbar.h | 2 -- src/gui/radiobutton.cpp | 2 -- src/gui/radiobutton.h | 2 -- src/gui/register.cpp | 2 -- src/gui/register.h | 2 -- src/gui/scrollarea.cpp | 2 -- src/gui/scrollarea.h | 2 -- src/gui/sell.cpp | 2 -- src/gui/sell.h | 2 -- src/gui/setup.cpp | 2 -- src/gui/setup.h | 2 -- src/gui/setup_audio.cpp | 2 -- src/gui/setup_audio.h | 2 -- src/gui/setup_joystick.cpp | 2 -- src/gui/setup_joystick.h | 2 -- src/gui/setup_keyboard.cpp | 2 -- src/gui/setup_keyboard.h | 2 -- src/gui/setup_players.cpp | 2 -- src/gui/setup_video.cpp | 2 -- src/gui/setup_video.h | 2 -- src/gui/setuptab.h | 2 -- src/gui/shop.cpp | 2 -- src/gui/shop.h | 2 -- src/gui/shoplistbox.cpp | 2 -- src/gui/shoplistbox.h | 2 -- src/gui/skill.cpp | 2 -- src/gui/skill.h | 2 -- src/gui/slider.cpp | 2 -- src/gui/slider.h | 2 -- src/gui/status.cpp | 2 -- src/gui/status.h | 2 -- src/gui/tabbedcontainer.cpp | 2 -- src/gui/tabbedcontainer.h | 2 -- src/gui/textbox.cpp | 2 -- src/gui/textbox.h | 2 -- src/gui/textfield.cpp | 2 -- src/gui/textfield.h | 2 -- src/gui/trade.cpp | 2 -- src/gui/trade.h | 2 -- src/gui/updatewindow.cpp | 2 -- src/gui/updatewindow.h | 2 -- src/gui/vbox.cpp | 2 -- src/gui/vbox.h | 2 -- src/gui/viewport.cpp | 2 -- src/gui/viewport.h | 2 -- src/gui/widgets/resizegrip.cpp | 2 -- src/gui/widgets/resizegrip.h | 2 -- src/gui/window.cpp | 2 -- src/gui/window.h | 2 -- src/gui/windowcontainer.cpp | 2 -- src/gui/windowcontainer.h | 2 -- src/guichanfwd.h | 2 -- src/imageparticle.cpp | 2 -- src/imageparticle.h | 2 -- src/inventory.cpp | 2 -- src/inventory.h | 2 -- src/item.cpp | 2 -- src/item.h | 2 -- src/itemshortcut.cpp | 2 -- src/itemshortcut.h | 2 -- src/joystick.cpp | 2 -- src/joystick.h | 2 -- src/keyboardconfig.cpp | 2 -- src/keyboardconfig.h | 2 -- src/localplayer.cpp | 2 -- src/localplayer.h | 2 -- src/lockedarray.h | 2 -- src/logindata.h | 2 -- src/main.cpp | 2 -- src/main.h | 2 -- src/map.cpp | 2 -- src/map.h | 2 -- src/monster.cpp | 2 -- src/monster.h | 2 -- src/net/beinghandler.cpp | 2 -- src/net/beinghandler.h | 2 -- src/net/buysellhandler.cpp | 2 -- src/net/buysellhandler.h | 2 -- src/net/charserverhandler.cpp | 2 -- src/net/charserverhandler.h | 2 -- src/net/chathandler.cpp | 2 -- src/net/chathandler.h | 2 -- src/net/equipmenthandler.cpp | 2 -- src/net/equipmenthandler.h | 2 -- src/net/inventoryhandler.cpp | 2 -- src/net/inventoryhandler.h | 2 -- src/net/itemhandler.cpp | 2 -- src/net/itemhandler.h | 2 -- src/net/loginhandler.cpp | 2 -- src/net/loginhandler.h | 2 -- src/net/maploginhandler.cpp | 2 -- src/net/maploginhandler.h | 2 -- src/net/messagehandler.cpp | 2 -- src/net/messagehandler.h | 2 -- src/net/messagein.cpp | 2 -- src/net/messagein.h | 2 -- src/net/messageout.cpp | 2 -- src/net/messageout.h | 2 -- src/net/network.cpp | 2 -- src/net/network.h | 2 -- src/net/npchandler.cpp | 2 -- src/net/npchandler.h | 2 -- src/net/playerhandler.cpp | 2 -- src/net/playerhandler.h | 2 -- src/net/protocol.cpp | 2 -- src/net/protocol.h | 2 -- src/net/skillhandler.cpp | 2 -- src/net/skillhandler.h | 2 -- src/net/tradehandler.cpp | 2 -- src/net/tradehandler.h | 2 -- src/npc.cpp | 2 -- src/npc.h | 2 -- src/openglgraphics.cpp | 2 -- src/openglgraphics.h | 2 -- src/particle.cpp | 2 -- src/particle.h | 2 -- src/particleemitter.cpp | 2 -- src/particleemitter.h | 2 -- src/particleemitterprop.h | 2 -- src/player.cpp | 2 -- src/player.h | 2 -- src/properties.h | 2 -- src/resources/action.cpp | 2 -- src/resources/action.h | 2 -- src/resources/ambientoverlay.cpp | 2 -- src/resources/ambientoverlay.h | 2 -- src/resources/animation.cpp | 2 -- src/resources/animation.h | 2 -- src/resources/buddylist.cpp | 2 -- src/resources/buddylist.h | 2 -- src/resources/dye.cpp | 2 -- src/resources/dye.h | 2 -- src/resources/image.cpp | 2 -- src/resources/image.h | 2 -- src/resources/imageloader.cpp | 2 -- src/resources/imageloader.h | 2 -- src/resources/imageset.cpp | 2 -- src/resources/imageset.h | 2 -- src/resources/imagewriter.cpp | 2 -- src/resources/imagewriter.h | 2 -- src/resources/itemdb.cpp | 2 -- src/resources/itemdb.h | 2 -- src/resources/iteminfo.cpp | 2 -- src/resources/iteminfo.h | 2 -- src/resources/mapreader.cpp | 2 -- src/resources/mapreader.h | 2 -- src/resources/monsterdb.cpp | 2 -- src/resources/monsterdb.h | 2 -- src/resources/monsterinfo.cpp | 2 -- src/resources/monsterinfo.h | 2 -- src/resources/music.cpp | 2 -- src/resources/music.h | 2 -- src/resources/npcdb.cpp | 2 -- src/resources/npcdb.h | 2 -- src/resources/resource.cpp | 2 -- src/resources/resource.h | 2 -- src/resources/resourcemanager.cpp | 2 -- src/resources/resourcemanager.h | 2 -- src/resources/soundeffect.cpp | 2 -- src/resources/soundeffect.h | 2 -- src/resources/spritedef.cpp | 2 -- src/resources/spritedef.h | 2 -- src/serverinfo.h | 2 -- src/shopitem.cpp | 2 -- src/shopitem.h | 2 -- src/simpleanimation.cpp | 2 -- src/simpleanimation.h | 2 -- src/sound.cpp | 2 -- src/sound.h | 2 -- src/sprite.h | 2 -- src/text.cpp | 2 -- src/text.h | 2 -- src/textmanager.cpp | 2 -- src/textmanager.h | 2 -- src/textparticle.cpp | 2 -- src/textparticle.h | 2 -- src/tileset.h | 2 -- src/utils/base64.cpp | 1 - src/utils/base64.h | 1 - src/utils/dtor.h | 2 -- src/utils/fastsqrt.h | 50 +++++++++++++++++++-------------------- src/utils/strprintf.cpp | 2 -- src/utils/strprintf.h | 2 -- src/utils/tostring.h | 2 -- src/utils/trim.h | 2 -- src/utils/xml.cpp | 2 -- src/utils/xml.h | 2 -- src/vector.h | 2 -- tools/tmxcopy/base64.cpp | 1 - tools/tmxcopy/base64.h | 1 - tools/tmxcopy/tostring.h | 2 -- tools/tmxcopy/xmlutils.cpp | 1 - tools/tmxcopy/xmlutils.h | 1 - 296 files changed, 24 insertions(+), 606 deletions(-) diff --git a/src/animatedsprite.cpp b/src/animatedsprite.cpp index 466779fd..840fb1e8 100644 --- a/src/animatedsprite.cpp +++ b/src/animatedsprite.cpp @@ -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$ */ #include "animatedsprite.h" diff --git a/src/animatedsprite.h b/src/animatedsprite.h index a1fbe7a0..405bf42e 100644 --- a/src/animatedsprite.h +++ b/src/animatedsprite.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$ */ #ifndef _TMW_ANIMATEDSPRITE_H diff --git a/src/animationparticle.cpp b/src/animationparticle.cpp index c79a5bc4..eb260157 100644 --- a/src/animationparticle.cpp +++ b/src/animationparticle.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 "animationparticle.h" diff --git a/src/animationparticle.h b/src/animationparticle.h index 054b1b73..eabc2742 100644 --- a/src/animationparticle.h +++ b/src/animationparticle.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 _ANIMATION_PARTICLE diff --git a/src/being.cpp b/src/being.cpp index 1569fcc3..ef257f43 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -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$ */ #include "being.h" diff --git a/src/being.h b/src/being.h index 76317797..0dbc41db 100644 --- a/src/being.h +++ b/src/being.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$ */ #ifndef _TMW_BEING_H diff --git a/src/beingmanager.cpp b/src/beingmanager.cpp index b683b1bd..51d45213 100644 --- a/src/beingmanager.cpp +++ b/src/beingmanager.cpp @@ -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$ */ #include diff --git a/src/beingmanager.h b/src/beingmanager.h index 243486e4..7a840030 100644 --- a/src/beingmanager.h +++ b/src/beingmanager.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$ */ #ifndef _TMW_BEINGMANAGER_H diff --git a/src/configlistener.h b/src/configlistener.h index 7ce5d949..b740720f 100644 --- a/src/configlistener.h +++ b/src/configlistener.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$ */ #ifndef _TMW_CONFIGLISTENER_H diff --git a/src/configuration.cpp b/src/configuration.cpp index 7e8cb542..e2deae31 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -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$ */ diff --git a/src/configuration.h b/src/configuration.h index 36d9e150..3751d429 100644 --- a/src/configuration.h +++ b/src/configuration.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$ */ #ifndef _TMW_CONFIGURATION_H diff --git a/src/engine.cpp b/src/engine.cpp index 67479a27..b1458cb4 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -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$ */ #include "engine.h" diff --git a/src/engine.h b/src/engine.h index 52f1e63a..8d387f80 100644 --- a/src/engine.h +++ b/src/engine.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$ */ #ifndef _ENGINE_H diff --git a/src/equipment.cpp b/src/equipment.cpp index 61b2d5b0..0bdd1c70 100644 --- a/src/equipment.cpp +++ b/src/equipment.cpp @@ -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$ */ #include "equipment.h" diff --git a/src/equipment.h b/src/equipment.h index e3b10514..4993e4df 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$ */ #ifndef _TMW_EQUIPMENT_H_ diff --git a/src/floor_item.cpp b/src/floor_item.cpp index 9727093f..7ad3c0c0 100644 --- a/src/floor_item.cpp +++ b/src/floor_item.cpp @@ -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$ */ #include "floor_item.h" diff --git a/src/floor_item.h b/src/floor_item.h index a87e3f79..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$ */ #ifndef _TMW_FLOORITEM_H_ diff --git a/src/flooritemmanager.cpp b/src/flooritemmanager.cpp index 8a00cc51..006d62c1 100644 --- a/src/flooritemmanager.cpp +++ b/src/flooritemmanager.cpp @@ -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$ */ #include diff --git a/src/flooritemmanager.h b/src/flooritemmanager.h index c12883a4..3dbaf988 100644 --- a/src/flooritemmanager.h +++ b/src/flooritemmanager.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$ */ #ifndef _TMW_FLOORITEMMANAGER_H diff --git a/src/game.cpp b/src/game.cpp index e08f45e4..245e711e 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -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$ */ #include "game.h" diff --git a/src/game.h b/src/game.h index 5b73832e..24e29b7d 100644 --- a/src/game.h +++ b/src/game.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$ */ #ifndef _TMW_GAME_ diff --git a/src/graphics.cpp b/src/graphics.cpp index 586f9f49..6920bcb0 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -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$ */ #include diff --git a/src/graphics.h b/src/graphics.h index 564826a2..efdd1ac1 100644 --- a/src/graphics.h +++ b/src/graphics.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$ */ #ifndef _GRAPHICS_H diff --git a/src/gui/box.cpp b/src/gui/box.cpp index 6af3ae3e..59d8c135 100644 --- a/src/gui/box.cpp +++ b/src/gui/box.cpp @@ -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$ */ #include "box.h" diff --git a/src/gui/box.h b/src/gui/box.h index ed1a7163..46654b48 100644 --- a/src/gui/box.h +++ b/src/gui/box.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$ */ diff --git a/src/gui/browserbox.cpp b/src/gui/browserbox.cpp index bc76335f..1c549949 100644 --- a/src/gui/browserbox.cpp +++ b/src/gui/browserbox.cpp @@ -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$ */ #include diff --git a/src/gui/browserbox.h b/src/gui/browserbox.h index 9c0e8ef1..39ecbda8 100644 --- a/src/gui/browserbox.h +++ b/src/gui/browserbox.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$ */ #ifndef __TMW_BROWSERBOX_H__ diff --git a/src/gui/buddywindow.cpp b/src/gui/buddywindow.cpp index 0ed383ce..14a941a5 100644 --- a/src/gui/buddywindow.cpp +++ b/src/gui/buddywindow.cpp @@ -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$ */ #include "buddywindow.h" diff --git a/src/gui/buddywindow.h b/src/gui/buddywindow.h index a3ca4de2..6b07f470 100644 --- a/src/gui/buddywindow.h +++ b/src/gui/buddywindow.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$ */ #ifndef _TMW_BUDDYWINDOW_H diff --git a/src/gui/button.cpp b/src/gui/button.cpp index c6bc4ccb..40ecd1b7 100644 --- a/src/gui/button.cpp +++ b/src/gui/button.cpp @@ -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$ */ #include diff --git a/src/gui/button.h b/src/gui/button.h index d12173b2..f451416c 100644 --- a/src/gui/button.h +++ b/src/gui/button.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$ */ #ifndef _TMW_BUTTON_H diff --git a/src/gui/buy.cpp b/src/gui/buy.cpp index c12e18b6..714f52db 100644 --- a/src/gui/buy.cpp +++ b/src/gui/buy.cpp @@ -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$ */ #include "buy.h" diff --git a/src/gui/buy.h b/src/gui/buy.h index 3a9ea3c5..0915385a 100644 --- a/src/gui/buy.h +++ b/src/gui/buy.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$ */ #ifndef _TMW_BUY_H diff --git a/src/gui/buysell.cpp b/src/gui/buysell.cpp index ae5c7358..42380882 100644 --- a/src/gui/buysell.cpp +++ b/src/gui/buysell.cpp @@ -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$ */ #include "buysell.h" diff --git a/src/gui/buysell.h b/src/gui/buysell.h index 97caf34b..2391ed1c 100644 --- a/src/gui/buysell.h +++ b/src/gui/buysell.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$ */ #ifndef _TMW_BUYSELL_H diff --git a/src/gui/char_select.cpp b/src/gui/char_select.cpp index 661a9fa7..d951f12e 100644 --- a/src/gui/char_select.cpp +++ b/src/gui/char_select.cpp @@ -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$ */ #include "char_select.h" diff --git a/src/gui/char_select.h b/src/gui/char_select.h index 283ecf42..0890bea9 100644 --- a/src/gui/char_select.h +++ b/src/gui/char_select.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$ */ #ifndef _CHAR_SELECT_H diff --git a/src/gui/char_server.cpp b/src/gui/char_server.cpp index b5ce9021..ce068ad1 100644 --- a/src/gui/char_server.cpp +++ b/src/gui/char_server.cpp @@ -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$ */ #include "char_server.h" diff --git a/src/gui/char_server.h b/src/gui/char_server.h index 3e43dd55..e05792f8 100644 --- a/src/gui/char_server.h +++ b/src/gui/char_server.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$ */ #ifndef _CHAR_SEL_SERVER_H diff --git a/src/gui/chargedialog.cpp b/src/gui/chargedialog.cpp index 862378ae..1c9edf45 100644 --- a/src/gui/chargedialog.cpp +++ b/src/gui/chargedialog.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 - * */ /* The window supported by this class shows player stats and keeps a charging diff --git a/src/gui/chargedialog.h b/src/gui/chargedialog.h index c09c692c..9517ef6a 100644 --- a/src/gui/chargedialog.h +++ b/src/gui/chargedialog.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 _TMW_CHARGE_H diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp index 2894bb70..71d36e97 100644 --- a/src/gui/chat.cpp +++ b/src/gui/chat.cpp @@ -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$ */ #include diff --git a/src/gui/chat.h b/src/gui/chat.h index a1d659a0..6e412bf6 100644 --- a/src/gui/chat.h +++ b/src/gui/chat.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$ */ #ifndef _TMW_CHAT_H diff --git a/src/gui/chatinput.cpp b/src/gui/chatinput.cpp index fc5d6aab..afe7f037 100644 --- a/src/gui/chatinput.cpp +++ b/src/gui/chatinput.cpp @@ -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$ */ #include "chatinput.h" diff --git a/src/gui/chatinput.h b/src/gui/chatinput.h index da2342ae..e04dfa6e 100644 --- a/src/gui/chatinput.h +++ b/src/gui/chatinput.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$ */ #ifndef _TMW_CHATINPUT_H diff --git a/src/gui/checkbox.cpp b/src/gui/checkbox.cpp index 5b300d33..20e24dee 100644 --- a/src/gui/checkbox.cpp +++ b/src/gui/checkbox.cpp @@ -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$ */ #include "checkbox.h" diff --git a/src/gui/checkbox.h b/src/gui/checkbox.h index 262e63ae..839ca97e 100644 --- a/src/gui/checkbox.h +++ b/src/gui/checkbox.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$ */ #ifndef _TMW_CHECKBOX_H diff --git a/src/gui/confirm_dialog.cpp b/src/gui/confirm_dialog.cpp index 0ff8be17..9ef94f62 100644 --- a/src/gui/confirm_dialog.cpp +++ b/src/gui/confirm_dialog.cpp @@ -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$ */ #include "confirm_dialog.h" diff --git a/src/gui/confirm_dialog.h b/src/gui/confirm_dialog.h index 8728f83f..c9bfca02 100644 --- a/src/gui/confirm_dialog.h +++ b/src/gui/confirm_dialog.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$ */ #ifndef _TMW_OPTION_DIALOG_H diff --git a/src/gui/connection.cpp b/src/gui/connection.cpp index baa1ea34..8ad3b436 100644 --- a/src/gui/connection.cpp +++ b/src/gui/connection.cpp @@ -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$ */ #include "connection.h" diff --git a/src/gui/connection.h b/src/gui/connection.h index 7a072d2e..c3a6208f 100644 --- a/src/gui/connection.h +++ b/src/gui/connection.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$ */ #ifndef _TMW_CONNECTION_H diff --git a/src/gui/debugwindow.cpp b/src/gui/debugwindow.cpp index d6d99307..f6e9414e 100644 --- a/src/gui/debugwindow.cpp +++ b/src/gui/debugwindow.cpp @@ -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$ */ #include "debugwindow.h" diff --git a/src/gui/debugwindow.h b/src/gui/debugwindow.h index 9b6f2017..ae1d8b14 100644 --- a/src/gui/debugwindow.h +++ b/src/gui/debugwindow.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$ */ #ifndef _TMW_DEBUGWINDOW_H diff --git a/src/gui/equipmentwindow.cpp b/src/gui/equipmentwindow.cpp index 83e166c5..e0246787 100644 --- a/src/gui/equipmentwindow.cpp +++ b/src/gui/equipmentwindow.cpp @@ -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$ */ #include "equipmentwindow.h" diff --git a/src/gui/equipmentwindow.h b/src/gui/equipmentwindow.h index 2130b7ce..42aa7701 100644 --- a/src/gui/equipmentwindow.h +++ b/src/gui/equipmentwindow.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$ */ #ifndef _TMW_EQUIPMENT_H diff --git a/src/gui/focushandler.cpp b/src/gui/focushandler.cpp index ffdb7896..1bda568e 100644 --- a/src/gui/focushandler.cpp +++ b/src/gui/focushandler.cpp @@ -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$ */ #include "focushandler.h" diff --git a/src/gui/focushandler.h b/src/gui/focushandler.h index 252fdd9d..a5218485 100644 --- a/src/gui/focushandler.h +++ b/src/gui/focushandler.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$ */ #ifndef _TMW_FOCUSHANDLER_H diff --git a/src/gui/gccontainer.cpp b/src/gui/gccontainer.cpp index 1edb4daf..ec3c8a5c 100644 --- a/src/gui/gccontainer.cpp +++ b/src/gui/gccontainer.cpp @@ -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$ */ #include "gccontainer.h" diff --git a/src/gui/gccontainer.h b/src/gui/gccontainer.h index 8b8a7ffe..cc7c9336 100644 --- a/src/gui/gccontainer.h +++ b/src/gui/gccontainer.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$ */ #ifndef _TMW_GUI_GCCONTAINER_H diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 12f19460..691cfe2b 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -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$ */ #include "gui.h" diff --git a/src/gui/gui.h b/src/gui/gui.h index 1e4b9348..f31b98c3 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.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$ */ #ifndef _TMW_GUI diff --git a/src/gui/hbox.cpp b/src/gui/hbox.cpp index 69564fbb..020e85c6 100644 --- a/src/gui/hbox.cpp +++ b/src/gui/hbox.cpp @@ -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$ */ #include "hbox.h" diff --git a/src/gui/hbox.h b/src/gui/hbox.h index 560b1a29..4b241383 100644 --- a/src/gui/hbox.h +++ b/src/gui/hbox.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$ */ #ifndef HBOX_H diff --git a/src/gui/help.cpp b/src/gui/help.cpp index 0b010253..290679b9 100644 --- a/src/gui/help.cpp +++ b/src/gui/help.cpp @@ -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$ */ #include "help.h" diff --git a/src/gui/help.h b/src/gui/help.h index 3c3715a0..053df723 100644 --- a/src/gui/help.h +++ b/src/gui/help.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$ */ #ifndef _TMW_HELP_H diff --git a/src/gui/inttextbox.cpp b/src/gui/inttextbox.cpp index 2a09f255..4825fbf5 100644 --- a/src/gui/inttextbox.cpp +++ b/src/gui/inttextbox.cpp @@ -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$ */ #include "inttextbox.h" diff --git a/src/gui/inttextbox.h b/src/gui/inttextbox.h index b5d339ac..8fc8e404 100644 --- a/src/gui/inttextbox.h +++ b/src/gui/inttextbox.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$ */ #ifndef INTTEXTBOX_H diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp index fcc602f9..d01a2112 100644 --- a/src/gui/inventorywindow.cpp +++ b/src/gui/inventorywindow.cpp @@ -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$ */ #include "inventorywindow.h" diff --git a/src/gui/inventorywindow.h b/src/gui/inventorywindow.h index d45602d2..0b208bbb 100644 --- a/src/gui/inventorywindow.h +++ b/src/gui/inventorywindow.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$ */ #ifndef _TMW_INVENTORYWINDOW_H diff --git a/src/gui/item_amount.cpp b/src/gui/item_amount.cpp index f72462f9..2e8941e8 100644 --- a/src/gui/item_amount.cpp +++ b/src/gui/item_amount.cpp @@ -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$ */ #include "item_amount.h" diff --git a/src/gui/item_amount.h b/src/gui/item_amount.h index 67002703..2005094d 100644 --- a/src/gui/item_amount.h +++ b/src/gui/item_amount.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$ */ #ifndef _TMW_ITEM_AMOUNT_WINDOW_H diff --git a/src/gui/itemcontainer.cpp b/src/gui/itemcontainer.cpp index cf5dcb92..68978db2 100644 --- a/src/gui/itemcontainer.cpp +++ b/src/gui/itemcontainer.cpp @@ -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$ */ #include "itemcontainer.h" diff --git a/src/gui/itemcontainer.h b/src/gui/itemcontainer.h index db8c6f3d..60b62f08 100644 --- a/src/gui/itemcontainer.h +++ b/src/gui/itemcontainer.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$ */ #ifndef _TMW_ITEMCONTAINER_H__ diff --git a/src/gui/itemshortcutcontainer.cpp b/src/gui/itemshortcutcontainer.cpp index 0ce4f6b7..687f8d16 100644 --- a/src/gui/itemshortcutcontainer.cpp +++ b/src/gui/itemshortcutcontainer.cpp @@ -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$ */ #include "itemshortcutcontainer.h" diff --git a/src/gui/itemshortcutcontainer.h b/src/gui/itemshortcutcontainer.h index 58f0aea7..76ca870c 100644 --- a/src/gui/itemshortcutcontainer.h +++ b/src/gui/itemshortcutcontainer.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$ */ #ifndef _TMW_ITEMSHORTCUTCONTAINER_H__ diff --git a/src/gui/itemshortcutwindow.cpp b/src/gui/itemshortcutwindow.cpp index de1a23a1..e7364411 100644 --- a/src/gui/itemshortcutwindow.cpp +++ b/src/gui/itemshortcutwindow.cpp @@ -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$ */ #include "itemshortcutwindow.h" diff --git a/src/gui/itemshortcutwindow.h b/src/gui/itemshortcutwindow.h index 9742abdc..017df5ec 100644 --- a/src/gui/itemshortcutwindow.h +++ b/src/gui/itemshortcutwindow.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$ */ #ifndef _TMW_ITEMSHORTCUTWINDOW_H diff --git a/src/gui/linkhandler.h b/src/gui/linkhandler.h index 3a32f825..44f906db 100644 --- a/src/gui/linkhandler.h +++ b/src/gui/linkhandler.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$ */ #ifndef _TMW_LINK_HANDLER_H_ diff --git a/src/gui/listbox.cpp b/src/gui/listbox.cpp index 634afa07..28bb82e9 100644 --- a/src/gui/listbox.cpp +++ b/src/gui/listbox.cpp @@ -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$ */ #include "listbox.h" diff --git a/src/gui/listbox.h b/src/gui/listbox.h index b226a11e..1d627b3b 100644 --- a/src/gui/listbox.h +++ b/src/gui/listbox.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$ */ #ifndef _TMW_LISTBOX_H diff --git a/src/gui/login.cpp b/src/gui/login.cpp index d85f4e83..06a5f9f0 100644 --- a/src/gui/login.cpp +++ b/src/gui/login.cpp @@ -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$ */ #include "login.h" diff --git a/src/gui/login.h b/src/gui/login.h index e08120cb..4760817c 100644 --- a/src/gui/login.h +++ b/src/gui/login.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$ */ #ifndef _TMW_LOGIN_H diff --git a/src/gui/menuwindow.cpp b/src/gui/menuwindow.cpp index 2043b7d1..3c3e4ab8 100644 --- a/src/gui/menuwindow.cpp +++ b/src/gui/menuwindow.cpp @@ -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$ */ #include "menuwindow.h" diff --git a/src/gui/menuwindow.h b/src/gui/menuwindow.h index f43b9921..03ec3380 100644 --- a/src/gui/menuwindow.h +++ b/src/gui/menuwindow.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$ */ #ifndef _TMW_MENU_H diff --git a/src/gui/minimap.cpp b/src/gui/minimap.cpp index c17fa06b..ef1e9544 100644 --- a/src/gui/minimap.cpp +++ b/src/gui/minimap.cpp @@ -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$ */ #include "minimap.h" diff --git a/src/gui/minimap.h b/src/gui/minimap.h index 5e9458bf..f91dc22d 100644 --- a/src/gui/minimap.h +++ b/src/gui/minimap.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$ */ #ifndef _TMW_MINIMAP_H diff --git a/src/gui/ministatus.cpp b/src/gui/ministatus.cpp index 077e2331..4d834a91 100644 --- a/src/gui/ministatus.cpp +++ b/src/gui/ministatus.cpp @@ -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$ */ #include "ministatus.h" diff --git a/src/gui/ministatus.h b/src/gui/ministatus.h index 718fe140..d7f6f68c 100644 --- a/src/gui/ministatus.h +++ b/src/gui/ministatus.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$ */ #ifndef _TMW_MINISTATUS_H diff --git a/src/gui/newskill.cpp b/src/gui/newskill.cpp index 6783a546..20fc01bd 100644 --- a/src/gui/newskill.cpp +++ b/src/gui/newskill.cpp @@ -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$ */ /* This file implements the new skill dialog for use under the latest diff --git a/src/gui/newskill.h b/src/gui/newskill.h index 6e12169f..49476e5e 100644 --- a/src/gui/newskill.h +++ b/src/gui/newskill.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$ */ #ifndef _TMW_NSKILL_H diff --git a/src/gui/npc_text.cpp b/src/gui/npc_text.cpp index 7b4fc634..3c4beaf3 100644 --- a/src/gui/npc_text.cpp +++ b/src/gui/npc_text.cpp @@ -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$ */ #include "npc_text.h" diff --git a/src/gui/npc_text.h b/src/gui/npc_text.h index 0ef1b938..2c9771d3 100644 --- a/src/gui/npc_text.h +++ b/src/gui/npc_text.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$ */ #ifndef _TMW_NPC_TEXT_H diff --git a/src/gui/npclistdialog.cpp b/src/gui/npclistdialog.cpp index 1bcdc8ff..90444f1a 100644 --- a/src/gui/npclistdialog.cpp +++ b/src/gui/npclistdialog.cpp @@ -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$ */ #include "npclistdialog.h" diff --git a/src/gui/npclistdialog.h b/src/gui/npclistdialog.h index c09b0a8c..0e6760f1 100644 --- a/src/gui/npclistdialog.h +++ b/src/gui/npclistdialog.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$ */ #ifndef _TMW_GUI_NPCLISTDIALOG_H diff --git a/src/gui/ok_dialog.cpp b/src/gui/ok_dialog.cpp index 90407d31..d43c8e69 100644 --- a/src/gui/ok_dialog.cpp +++ b/src/gui/ok_dialog.cpp @@ -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$ */ #include "ok_dialog.h" diff --git a/src/gui/ok_dialog.h b/src/gui/ok_dialog.h index a7b24a90..cba12d72 100644 --- a/src/gui/ok_dialog.h +++ b/src/gui/ok_dialog.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$ */ #ifndef _OK_DIALOG_H diff --git a/src/gui/passwordfield.cpp b/src/gui/passwordfield.cpp index 533f54fb..01c7e15d 100644 --- a/src/gui/passwordfield.cpp +++ b/src/gui/passwordfield.cpp @@ -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$ */ #include "passwordfield.h" diff --git a/src/gui/passwordfield.h b/src/gui/passwordfield.h index cae1f92e..8a14b72a 100644 --- a/src/gui/passwordfield.h +++ b/src/gui/passwordfield.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$ */ #ifndef _TMW_PASSWORDFIELD_H_ diff --git a/src/gui/playerbox.cpp b/src/gui/playerbox.cpp index 2c633b72..b6b7663a 100644 --- a/src/gui/playerbox.cpp +++ b/src/gui/playerbox.cpp @@ -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$ */ #include diff --git a/src/gui/playerbox.h b/src/gui/playerbox.h index c226e750..78eeee91 100644 --- a/src/gui/playerbox.h +++ b/src/gui/playerbox.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$ */ #ifndef __TMW_PLAYERBOX_H__ diff --git a/src/gui/popupmenu.cpp b/src/gui/popupmenu.cpp index cdc998e0..8b73abfe 100644 --- a/src/gui/popupmenu.cpp +++ b/src/gui/popupmenu.cpp @@ -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$ */ #include "popupmenu.h" diff --git a/src/gui/popupmenu.h b/src/gui/popupmenu.h index 9fe9f866..2d10e6eb 100644 --- a/src/gui/popupmenu.h +++ b/src/gui/popupmenu.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$ */ #ifndef _TMW_POPUP_MENU_H diff --git a/src/gui/progressbar.cpp b/src/gui/progressbar.cpp index 6d18b2f7..708a2991 100644 --- a/src/gui/progressbar.cpp +++ b/src/gui/progressbar.cpp @@ -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$ */ #include "progressbar.h" diff --git a/src/gui/progressbar.h b/src/gui/progressbar.h index 3e58f14e..70cfa15c 100644 --- a/src/gui/progressbar.h +++ b/src/gui/progressbar.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$ */ #ifndef _TMW_PROGRESSBAR_H diff --git a/src/gui/radiobutton.cpp b/src/gui/radiobutton.cpp index 0ac4dea8..5f929e62 100644 --- a/src/gui/radiobutton.cpp +++ b/src/gui/radiobutton.cpp @@ -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$ */ #include "radiobutton.h" diff --git a/src/gui/radiobutton.h b/src/gui/radiobutton.h index 4f868fdb..6506444f 100644 --- a/src/gui/radiobutton.h +++ b/src/gui/radiobutton.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$ */ #ifndef _TMW_RADIOBUTTON_H diff --git a/src/gui/register.cpp b/src/gui/register.cpp index 9496da93..2a97a3e5 100644 --- a/src/gui/register.cpp +++ b/src/gui/register.cpp @@ -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$ */ #include "register.h" diff --git a/src/gui/register.h b/src/gui/register.h index a80594af..771962cc 100644 --- a/src/gui/register.h +++ b/src/gui/register.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$ */ #ifndef _TMW_REGISTER_H diff --git a/src/gui/scrollarea.cpp b/src/gui/scrollarea.cpp index 255aa2d8..032e3f78 100644 --- a/src/gui/scrollarea.cpp +++ b/src/gui/scrollarea.cpp @@ -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$ */ #include diff --git a/src/gui/scrollarea.h b/src/gui/scrollarea.h index be361f68..d21dae11 100644 --- a/src/gui/scrollarea.h +++ b/src/gui/scrollarea.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$ */ #ifndef __TMW_SCROLLAREA_H__ diff --git a/src/gui/sell.cpp b/src/gui/sell.cpp index d13be2db..6df1cbf6 100644 --- a/src/gui/sell.cpp +++ b/src/gui/sell.cpp @@ -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$ */ #include "sell.h" diff --git a/src/gui/sell.h b/src/gui/sell.h index 0c1a2007..48961efc 100644 --- a/src/gui/sell.h +++ b/src/gui/sell.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$ */ #ifndef _TMW_SELL_H diff --git a/src/gui/setup.cpp b/src/gui/setup.cpp index c895d166..6be0399c 100644 --- a/src/gui/setup.cpp +++ b/src/gui/setup.cpp @@ -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$ */ #include diff --git a/src/gui/setup.h b/src/gui/setup.h index 543cab2c..5268f725 100644 --- a/src/gui/setup.h +++ b/src/gui/setup.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$ */ #ifndef _TMW_SETUP_H diff --git a/src/gui/setup_audio.cpp b/src/gui/setup_audio.cpp index 4227b5ca..a027e133 100644 --- a/src/gui/setup_audio.cpp +++ b/src/gui/setup_audio.cpp @@ -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$ */ #include "setup_audio.h" diff --git a/src/gui/setup_audio.h b/src/gui/setup_audio.h index 6e722f74..eaa55de6 100644 --- a/src/gui/setup_audio.h +++ b/src/gui/setup_audio.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$ */ #ifndef _TMW_GUI_SETUP_AUDIO_H diff --git a/src/gui/setup_joystick.cpp b/src/gui/setup_joystick.cpp index a501298e..c59068f7 100644 --- a/src/gui/setup_joystick.cpp +++ b/src/gui/setup_joystick.cpp @@ -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$ */ #include "setup_joystick.h" diff --git a/src/gui/setup_joystick.h b/src/gui/setup_joystick.h index 6d3ad129..0b7ebe98 100644 --- a/src/gui/setup_joystick.h +++ b/src/gui/setup_joystick.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$ */ #ifndef _TMW_GUI_SETUP_JOYSTICK_H diff --git a/src/gui/setup_keyboard.cpp b/src/gui/setup_keyboard.cpp index e88080b5..c6247487 100644 --- a/src/gui/setup_keyboard.cpp +++ b/src/gui/setup_keyboard.cpp @@ -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$ */ #include "setup_keyboard.h" diff --git a/src/gui/setup_keyboard.h b/src/gui/setup_keyboard.h index b72e8746..50fa76fb 100644 --- a/src/gui/setup_keyboard.h +++ b/src/gui/setup_keyboard.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$ */ #ifndef _TMW_GUI_SETUP_KEYBOARD_H diff --git a/src/gui/setup_players.cpp b/src/gui/setup_players.cpp index 24b559da..7dcbb5dc 100644 --- a/src/gui/setup_players.cpp +++ b/src/gui/setup_players.cpp @@ -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$ */ #include "setup_players.h" diff --git a/src/gui/setup_video.cpp b/src/gui/setup_video.cpp index ae15c7ef..5db2c262 100644 --- a/src/gui/setup_video.cpp +++ b/src/gui/setup_video.cpp @@ -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$ */ #include "setup_video.h" diff --git a/src/gui/setup_video.h b/src/gui/setup_video.h index a0701a3c..355a321e 100644 --- a/src/gui/setup_video.h +++ b/src/gui/setup_video.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$ */ #ifndef _TMW_GUI_SETUP_VIDEO_H diff --git a/src/gui/setuptab.h b/src/gui/setuptab.h index a7d45b9a..6c276c35 100644 --- a/src/gui/setuptab.h +++ b/src/gui/setuptab.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$ */ #ifndef _TMW_GUI_SETUPTAB_H diff --git a/src/gui/shop.cpp b/src/gui/shop.cpp index 62d18769..085e93ce 100644 --- a/src/gui/shop.cpp +++ b/src/gui/shop.cpp @@ -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$ */ #include "shop.h" diff --git a/src/gui/shop.h b/src/gui/shop.h index 22e715c9..915ddd15 100644 --- a/src/gui/shop.h +++ b/src/gui/shop.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$ */ #ifndef _SHOP_H diff --git a/src/gui/shoplistbox.cpp b/src/gui/shoplistbox.cpp index 7a8b52ed..bce6a48c 100644 --- a/src/gui/shoplistbox.cpp +++ b/src/gui/shoplistbox.cpp @@ -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: listbox.cpp 2655 2006-09-03 21:25:02Z b_lindeijer $ */ #include "shoplistbox.h" diff --git a/src/gui/shoplistbox.h b/src/gui/shoplistbox.h index 837f745f..75f514ab 100644 --- a/src/gui/shoplistbox.h +++ b/src/gui/shoplistbox.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: listbox.h 2655 2006-09-03 21:25:02Z b_lindeijer $ */ #ifndef _TMW_SHOPLISTBOX_H diff --git a/src/gui/skill.cpp b/src/gui/skill.cpp index 178abe1f..a7b598eb 100644 --- a/src/gui/skill.cpp +++ b/src/gui/skill.cpp @@ -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$ */ #include diff --git a/src/gui/skill.h b/src/gui/skill.h index 66ec35f3..bbd950cb 100644 --- a/src/gui/skill.h +++ b/src/gui/skill.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$ */ #ifndef _TMW_SKILL_H diff --git a/src/gui/slider.cpp b/src/gui/slider.cpp index c94c7bfb..afeecf17 100644 --- a/src/gui/slider.cpp +++ b/src/gui/slider.cpp @@ -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$ */ #include "slider.h" diff --git a/src/gui/slider.h b/src/gui/slider.h index dc38b738..3b796425 100644 --- a/src/gui/slider.h +++ b/src/gui/slider.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$ */ #ifndef _TMW_SLIDER_H diff --git a/src/gui/status.cpp b/src/gui/status.cpp index 927b3554..2f2340d9 100644 --- a/src/gui/status.cpp +++ b/src/gui/status.cpp @@ -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$ */ #include "status.h" diff --git a/src/gui/status.h b/src/gui/status.h index 10773e10..55ed393e 100644 --- a/src/gui/status.h +++ b/src/gui/status.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$ */ #ifndef _TMW_STATUS_H diff --git a/src/gui/tabbedcontainer.cpp b/src/gui/tabbedcontainer.cpp index d6267e65..fba4e846 100644 --- a/src/gui/tabbedcontainer.cpp +++ b/src/gui/tabbedcontainer.cpp @@ -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$ */ #include diff --git a/src/gui/tabbedcontainer.h b/src/gui/tabbedcontainer.h index 7f8deef9..babf68a2 100644 --- a/src/gui/tabbedcontainer.h +++ b/src/gui/tabbedcontainer.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$ */ #ifndef _TMW_TABPANE_H diff --git a/src/gui/textbox.cpp b/src/gui/textbox.cpp index 8d16dc46..619265ec 100644 --- a/src/gui/textbox.cpp +++ b/src/gui/textbox.cpp @@ -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$ */ #include "textbox.h" diff --git a/src/gui/textbox.h b/src/gui/textbox.h index f06f98ec..2060e377 100644 --- a/src/gui/textbox.h +++ b/src/gui/textbox.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$ */ #ifndef __TMW_TEXTBOX_H__ diff --git a/src/gui/textfield.cpp b/src/gui/textfield.cpp index 8db720cf..ea82ba77 100644 --- a/src/gui/textfield.cpp +++ b/src/gui/textfield.cpp @@ -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$ */ #include diff --git a/src/gui/textfield.h b/src/gui/textfield.h index bc47d501..60a50c69 100644 --- a/src/gui/textfield.h +++ b/src/gui/textfield.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$ */ #ifndef __TMW_TEXTFIELD_H__ diff --git a/src/gui/trade.cpp b/src/gui/trade.cpp index 54544250..9cb0d34f 100644 --- a/src/gui/trade.cpp +++ b/src/gui/trade.cpp @@ -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 $ */ #include "trade.h" diff --git a/src/gui/trade.h b/src/gui/trade.h index 7adf9575..5d587991 100644 --- a/src/gui/trade.h +++ b/src/gui/trade.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 $ */ #ifndef _TMW_TRADE_H diff --git a/src/gui/updatewindow.cpp b/src/gui/updatewindow.cpp index 518abda2..ea0f86cd 100644 --- a/src/gui/updatewindow.cpp +++ b/src/gui/updatewindow.cpp @@ -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$ */ #include "updatewindow.h" diff --git a/src/gui/updatewindow.h b/src/gui/updatewindow.h index 61ea4a27..d7e3c4c7 100644 --- a/src/gui/updatewindow.h +++ b/src/gui/updatewindow.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$ */ #ifndef _UPDATERWINDOW_H diff --git a/src/gui/vbox.cpp b/src/gui/vbox.cpp index b503508e..2ec1112d 100644 --- a/src/gui/vbox.cpp +++ b/src/gui/vbox.cpp @@ -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$ */ #include "vbox.h" diff --git a/src/gui/vbox.h b/src/gui/vbox.h index 06a270ef..2072ab24 100644 --- a/src/gui/vbox.h +++ b/src/gui/vbox.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$ */ #ifndef VBOX_H diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp index e8293acf..37e7bcce 100644 --- a/src/gui/viewport.cpp +++ b/src/gui/viewport.cpp @@ -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$ */ #include "viewport.h" diff --git a/src/gui/viewport.h b/src/gui/viewport.h index 8d3fbd3c..707ad33b 100644 --- a/src/gui/viewport.h +++ b/src/gui/viewport.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$ */ #ifndef _TMW_VIEWPORT_H_ diff --git a/src/gui/widgets/resizegrip.cpp b/src/gui/widgets/resizegrip.cpp index 6be50f2c..c3b537db 100644 --- a/src/gui/widgets/resizegrip.cpp +++ b/src/gui/widgets/resizegrip.cpp @@ -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$ */ #include "resizegrip.h" diff --git a/src/gui/widgets/resizegrip.h b/src/gui/widgets/resizegrip.h index 04be3db3..f57eda94 100644 --- a/src/gui/widgets/resizegrip.h +++ b/src/gui/widgets/resizegrip.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$ */ #ifndef _TMW_RESIZEGRIP_H diff --git a/src/gui/window.cpp b/src/gui/window.cpp index ee8aca64..58544f7e 100644 --- a/src/gui/window.cpp +++ b/src/gui/window.cpp @@ -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$ */ #include diff --git a/src/gui/window.h b/src/gui/window.h index f88e5c01..984c6f06 100644 --- a/src/gui/window.h +++ b/src/gui/window.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$ */ #ifndef _TMW_WINDOW_H__ diff --git a/src/gui/windowcontainer.cpp b/src/gui/windowcontainer.cpp index d10c519c..f92e8388 100644 --- a/src/gui/windowcontainer.cpp +++ b/src/gui/windowcontainer.cpp @@ -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$ */ #include diff --git a/src/gui/windowcontainer.h b/src/gui/windowcontainer.h index df255f84..88a13d31 100644 --- a/src/gui/windowcontainer.h +++ b/src/gui/windowcontainer.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$ */ #ifndef _TMW_WINDOWCONTAINER_H_ diff --git a/src/guichanfwd.h b/src/guichanfwd.h index 812f3f7a..4fb7ea3e 100644 --- a/src/guichanfwd.h +++ b/src/guichanfwd.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$ */ #ifndef _TMW_GUICHANFWD_H diff --git a/src/imageparticle.cpp b/src/imageparticle.cpp index 965434b0..65780345 100644 --- a/src/imageparticle.cpp +++ b/src/imageparticle.cpp @@ -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$ */ #include "imageparticle.h" diff --git a/src/imageparticle.h b/src/imageparticle.h index 0ad515cc..91c5426c 100644 --- a/src/imageparticle.h +++ b/src/imageparticle.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$ */ #ifndef _IMAGEPARTICLE_H diff --git a/src/inventory.cpp b/src/inventory.cpp index 470b6c85..5633f430 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -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$ */ #include "inventory.h" diff --git a/src/inventory.h b/src/inventory.h index 0d2bbc5a..aa5c8d1d 100644 --- a/src/inventory.h +++ b/src/inventory.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$ */ #ifndef _INVENTORY_H diff --git a/src/item.cpp b/src/item.cpp index e84a06df..bc6b7cc7 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -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$ */ #include "item.h" diff --git a/src/item.h b/src/item.h index 9e1c5ec8..eb6fed77 100644 --- a/src/item.h +++ b/src/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$ */ #ifndef _ITEM_H_ diff --git a/src/itemshortcut.cpp b/src/itemshortcut.cpp index a32e50e0..5a92e216 100644 --- a/src/itemshortcut.cpp +++ b/src/itemshortcut.cpp @@ -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$ */ #include "itemshortcut.h" diff --git a/src/itemshortcut.h b/src/itemshortcut.h index d75db2e8..a0c52468 100644 --- a/src/itemshortcut.h +++ b/src/itemshortcut.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$ */ #ifndef _TMW_ITEMSHORTCUT_H__ diff --git a/src/joystick.cpp b/src/joystick.cpp index a5dab4f4..b69537cf 100644 --- a/src/joystick.cpp +++ b/src/joystick.cpp @@ -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$ */ #include "joystick.h" diff --git a/src/joystick.h b/src/joystick.h index 321e3e7d..4cc1babd 100644 --- a/src/joystick.h +++ b/src/joystick.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$ */ #ifndef _TMW_JOYSTICK_H diff --git a/src/keyboardconfig.cpp b/src/keyboardconfig.cpp index 9f558883..19cbb945 100644 --- a/src/keyboardconfig.cpp +++ b/src/keyboardconfig.cpp @@ -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$ */ #include "keyboardconfig.h" diff --git a/src/keyboardconfig.h b/src/keyboardconfig.h index b57136dc..9c5fe943 100644 --- a/src/keyboardconfig.h +++ b/src/keyboardconfig.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$ */ #ifndef _TMW_KEYBOARDCONFIG_H diff --git a/src/localplayer.cpp b/src/localplayer.cpp index bb91711c..f67b3185 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -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$ */ #include "localplayer.h" diff --git a/src/localplayer.h b/src/localplayer.h index 493e0846..34f10a4a 100644 --- a/src/localplayer.h +++ b/src/localplayer.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$ */ #ifndef _TMW_LOCALPLAYER_H diff --git a/src/lockedarray.h b/src/lockedarray.h index 7ec2f9da..a3e5dc0a 100644 --- a/src/lockedarray.h +++ b/src/lockedarray.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$ */ #ifndef _TMW_LOCKEDARRAY_H diff --git a/src/logindata.h b/src/logindata.h index a2e3f9f1..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$ */ #ifndef _TMW_LOGINDATA_H diff --git a/src/main.cpp b/src/main.cpp index 6c9fe45c..91ba4d53 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -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$ */ #include "main.h" diff --git a/src/main.h b/src/main.h index c18a2ddd..3070804f 100644 --- a/src/main.h +++ b/src/main.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$ */ #ifndef _TMW_MAIN_H diff --git a/src/map.cpp b/src/map.cpp index 23eff3b0..928a0154 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -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$ */ #include "map.h" diff --git a/src/map.h b/src/map.h index 95532eb3..6eaf9e43 100644 --- a/src/map.h +++ b/src/map.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$ */ #ifndef _TMW_MAP_H_ diff --git a/src/monster.cpp b/src/monster.cpp index d7a2add1..8666fe26 100644 --- a/src/monster.cpp +++ b/src/monster.cpp @@ -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$ */ #include "monster.h" diff --git a/src/monster.h b/src/monster.h index cd34886b..c8f0a8f7 100644 --- a/src/monster.h +++ b/src/monster.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$ */ #ifndef _TMW_MONSTER_H diff --git a/src/net/beinghandler.cpp b/src/net/beinghandler.cpp index 1f2463b3..086b4280 100644 --- a/src/net/beinghandler.cpp +++ b/src/net/beinghandler.cpp @@ -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$ */ #include "beinghandler.h" diff --git a/src/net/beinghandler.h b/src/net/beinghandler.h index 5d6d91a4..5e22a670 100644 --- a/src/net/beinghandler.h +++ b/src/net/beinghandler.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$ */ #ifndef _TMW_NET_BEINGHANDLER_H diff --git a/src/net/buysellhandler.cpp b/src/net/buysellhandler.cpp index 26261664..5eb76a46 100644 --- a/src/net/buysellhandler.cpp +++ b/src/net/buysellhandler.cpp @@ -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$ */ #include "buysellhandler.h" diff --git a/src/net/buysellhandler.h b/src/net/buysellhandler.h index 673aaac1..49984840 100644 --- a/src/net/buysellhandler.h +++ b/src/net/buysellhandler.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$ */ #ifndef _TMW_NET_BUYSELLHANDLER_H diff --git a/src/net/charserverhandler.cpp b/src/net/charserverhandler.cpp index baa841f4..9fb67ea5 100644 --- a/src/net/charserverhandler.cpp +++ b/src/net/charserverhandler.cpp @@ -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$ */ #include "charserverhandler.h" diff --git a/src/net/charserverhandler.h b/src/net/charserverhandler.h index ab4ca1c7..05f547d0 100644 --- a/src/net/charserverhandler.h +++ b/src/net/charserverhandler.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$ */ #ifndef _TMW_NET_CHARSERVERHANDLER_H diff --git a/src/net/chathandler.cpp b/src/net/chathandler.cpp index 524911d3..d852798d 100644 --- a/src/net/chathandler.cpp +++ b/src/net/chathandler.cpp @@ -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$ */ #include "chathandler.h" diff --git a/src/net/chathandler.h b/src/net/chathandler.h index eed19206..53ea61d8 100644 --- a/src/net/chathandler.h +++ b/src/net/chathandler.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$ */ #ifndef _TMW_NET_CHATHANDLER_H diff --git a/src/net/equipmenthandler.cpp b/src/net/equipmenthandler.cpp index eddc0ea0..39b6e8cd 100644 --- a/src/net/equipmenthandler.cpp +++ b/src/net/equipmenthandler.cpp @@ -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$ */ #include "equipmenthandler.h" diff --git a/src/net/equipmenthandler.h b/src/net/equipmenthandler.h index 656f7a73..31a747c3 100644 --- a/src/net/equipmenthandler.h +++ b/src/net/equipmenthandler.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$ */ #ifndef _TMW_NET_EQUIPMENTHANDLER_H diff --git a/src/net/inventoryhandler.cpp b/src/net/inventoryhandler.cpp index 48cf18ff..9ddbd62f 100644 --- a/src/net/inventoryhandler.cpp +++ b/src/net/inventoryhandler.cpp @@ -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$ */ #include "inventoryhandler.h" diff --git a/src/net/inventoryhandler.h b/src/net/inventoryhandler.h index aedbc3a1..002fa938 100644 --- a/src/net/inventoryhandler.h +++ b/src/net/inventoryhandler.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$ */ #ifndef _TMW_NET_INVENTORYHANDLER_H diff --git a/src/net/itemhandler.cpp b/src/net/itemhandler.cpp index 567a5382..487b98bf 100644 --- a/src/net/itemhandler.cpp +++ b/src/net/itemhandler.cpp @@ -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$ */ #include "itemhandler.h" diff --git a/src/net/itemhandler.h b/src/net/itemhandler.h index b2104722..99fc6b62 100644 --- a/src/net/itemhandler.h +++ b/src/net/itemhandler.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$ */ #ifndef _TMW_NET_ITEMHANDLER_H diff --git a/src/net/loginhandler.cpp b/src/net/loginhandler.cpp index 19893a8e..169503da 100644 --- a/src/net/loginhandler.cpp +++ b/src/net/loginhandler.cpp @@ -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$ */ #include "loginhandler.h" diff --git a/src/net/loginhandler.h b/src/net/loginhandler.h index 86c1b609..8a952cd5 100644 --- a/src/net/loginhandler.h +++ b/src/net/loginhandler.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$ */ #ifndef _TMW_NET_LOGINHANDLER_H diff --git a/src/net/maploginhandler.cpp b/src/net/maploginhandler.cpp index 0afc8357..b1000c12 100644 --- a/src/net/maploginhandler.cpp +++ b/src/net/maploginhandler.cpp @@ -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$ */ #include "maploginhandler.h" diff --git a/src/net/maploginhandler.h b/src/net/maploginhandler.h index fe597549..4d9fa75b 100644 --- a/src/net/maploginhandler.h +++ b/src/net/maploginhandler.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$ */ #ifndef _TMW_NET_MAPLOGINHANDLER_H diff --git a/src/net/messagehandler.cpp b/src/net/messagehandler.cpp index 849b6716..29e34a29 100644 --- a/src/net/messagehandler.cpp +++ b/src/net/messagehandler.cpp @@ -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$ */ #include "messagehandler.h" diff --git a/src/net/messagehandler.h b/src/net/messagehandler.h index c09037f6..952e76a9 100644 --- a/src/net/messagehandler.h +++ b/src/net/messagehandler.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$ */ #ifndef _TMW_NET_MESSAGEHANDLER_H diff --git a/src/net/messagein.cpp b/src/net/messagein.cpp index bbc0a44c..8e31fded 100644 --- a/src/net/messagein.cpp +++ b/src/net/messagein.cpp @@ -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$ */ #include "messagein.h" diff --git a/src/net/messagein.h b/src/net/messagein.h index d97cd8b6..da80df9e 100644 --- a/src/net/messagein.h +++ b/src/net/messagein.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$ */ #ifndef _TMW_MESSAGEIN_ diff --git a/src/net/messageout.cpp b/src/net/messageout.cpp index 9c87e69e..96678f19 100644 --- a/src/net/messageout.cpp +++ b/src/net/messageout.cpp @@ -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$ */ #include diff --git a/src/net/messageout.h b/src/net/messageout.h index f6468adb..3c4cc241 100644 --- a/src/net/messageout.h +++ b/src/net/messageout.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$ */ #ifndef _TMW_MESSAGEOUT_ diff --git a/src/net/network.cpp b/src/net/network.cpp index 3e1b6571..e8b5e949 100644 --- a/src/net/network.cpp +++ b/src/net/network.cpp @@ -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$ */ #include "network.h" diff --git a/src/net/network.h b/src/net/network.h index 0326b6ce..43b4dbbc 100644 --- a/src/net/network.h +++ b/src/net/network.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$ */ #ifndef _TMW_NETWORK_ diff --git a/src/net/npchandler.cpp b/src/net/npchandler.cpp index d41aaaad..b633835c 100644 --- a/src/net/npchandler.cpp +++ b/src/net/npchandler.cpp @@ -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$ */ #include "npchandler.h" diff --git a/src/net/npchandler.h b/src/net/npchandler.h index 903ecd10..abb16b7a 100644 --- a/src/net/npchandler.h +++ b/src/net/npchandler.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$ */ #ifndef _TMW_NET_NPCHANDLER_H diff --git a/src/net/playerhandler.cpp b/src/net/playerhandler.cpp index 27d4e601..50546b1e 100644 --- a/src/net/playerhandler.cpp +++ b/src/net/playerhandler.cpp @@ -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$ */ #include "playerhandler.h" diff --git a/src/net/playerhandler.h b/src/net/playerhandler.h index b28a23f5..ec22e704 100644 --- a/src/net/playerhandler.h +++ b/src/net/playerhandler.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$ */ #ifndef _TMW_NET_PLAYERHANDLER_H diff --git a/src/net/protocol.cpp b/src/net/protocol.cpp index d3db50bf..a0e21d2e 100644 --- a/src/net/protocol.cpp +++ b/src/net/protocol.cpp @@ -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$ */ #include "protocol.h" diff --git a/src/net/protocol.h b/src/net/protocol.h index 49c177a2..d7bdd041 100644 --- a/src/net/protocol.h +++ b/src/net/protocol.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$ */ #ifndef _TMW_PROTOCOL_ diff --git a/src/net/skillhandler.cpp b/src/net/skillhandler.cpp index 53cfda1a..2bb5d9dc 100644 --- a/src/net/skillhandler.cpp +++ b/src/net/skillhandler.cpp @@ -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$ */ #include "skillhandler.h" diff --git a/src/net/skillhandler.h b/src/net/skillhandler.h index 820a7b6a..80095bd3 100644 --- a/src/net/skillhandler.h +++ b/src/net/skillhandler.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$ */ #ifndef _TMW_NET_SKILLHANDLER_H diff --git a/src/net/tradehandler.cpp b/src/net/tradehandler.cpp index e2f7b998..955aeff1 100644 --- a/src/net/tradehandler.cpp +++ b/src/net/tradehandler.cpp @@ -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$ */ #include "tradehandler.h" diff --git a/src/net/tradehandler.h b/src/net/tradehandler.h index a1971004..37ec5024 100644 --- a/src/net/tradehandler.h +++ b/src/net/tradehandler.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$ */ #ifndef _TMW_NET_TRADEHANDLER_H diff --git a/src/npc.cpp b/src/npc.cpp index ab3c6970..66048005 100644 --- a/src/npc.cpp +++ b/src/npc.cpp @@ -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$ */ #include "npc.h" diff --git a/src/npc.h b/src/npc.h index 2f9bbef4..5eb9036d 100644 --- a/src/npc.h +++ b/src/npc.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$ */ #ifndef _TMW_NPC_H diff --git a/src/openglgraphics.cpp b/src/openglgraphics.cpp index 5b34de18..d8d7a807 100644 --- a/src/openglgraphics.cpp +++ b/src/openglgraphics.cpp @@ -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$ */ #include "main.h" diff --git a/src/openglgraphics.h b/src/openglgraphics.h index ee5bc1e1..7d39e306 100644 --- a/src/openglgraphics.h +++ b/src/openglgraphics.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$ */ #ifndef _TMW_OPENGLGRAPHICS_H diff --git a/src/particle.cpp b/src/particle.cpp index 1521e75b..d4266df2 100644 --- a/src/particle.cpp +++ b/src/particle.cpp @@ -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$ */ #include diff --git a/src/particle.h b/src/particle.h index f281864d..6c00eadd 100644 --- a/src/particle.h +++ b/src/particle.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$ */ #ifndef _PARTICLE_H diff --git a/src/particleemitter.cpp b/src/particleemitter.cpp index bb4a7c6e..5ae1aae5 100644 --- a/src/particleemitter.cpp +++ b/src/particleemitter.cpp @@ -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$ */ #include "particleemitter.h" diff --git a/src/particleemitter.h b/src/particleemitter.h index 4ef088f6..ad0e33f8 100644 --- a/src/particleemitter.h +++ b/src/particleemitter.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$ */ #ifndef _PARTICLEEMITTER_H diff --git a/src/particleemitterprop.h b/src/particleemitterprop.h index e645c169..70a04aee 100644 --- a/src/particleemitterprop.h +++ b/src/particleemitterprop.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$ */ #include diff --git a/src/player.cpp b/src/player.cpp index 0e88da0b..f43e54d5 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -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$ */ #include "player.h" diff --git a/src/player.h b/src/player.h index 6347b0a6..4676124c 100644 --- a/src/player.h +++ b/src/player.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$ */ #ifndef _TMW_PLAYER_H diff --git a/src/properties.h b/src/properties.h index 93148bdf..2eafeeca 100644 --- a/src/properties.h +++ b/src/properties.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$ */ #ifndef _TMW_PROPERTIES_H_ diff --git a/src/resources/action.cpp b/src/resources/action.cpp index 6b3c2f52..ffbbffb2 100644 --- a/src/resources/action.cpp +++ b/src/resources/action.cpp @@ -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$ */ #include "action.h" diff --git a/src/resources/action.h b/src/resources/action.h index 8d5e8d11..09eb066e 100644 --- a/src/resources/action.h +++ b/src/resources/action.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$ */ #ifndef _TMW_ACTION_H diff --git a/src/resources/ambientoverlay.cpp b/src/resources/ambientoverlay.cpp index 058b6083..9eee57f0 100644 --- a/src/resources/ambientoverlay.cpp +++ b/src/resources/ambientoverlay.cpp @@ -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$ */ #include "ambientoverlay.h" diff --git a/src/resources/ambientoverlay.h b/src/resources/ambientoverlay.h index a939cbb4..56c70066 100644 --- a/src/resources/ambientoverlay.h +++ b/src/resources/ambientoverlay.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$ */ #ifndef _TMW_RESOURCES_AMBIENTOVERLAY_H_ diff --git a/src/resources/animation.cpp b/src/resources/animation.cpp index de96525c..d2794e61 100644 --- a/src/resources/animation.cpp +++ b/src/resources/animation.cpp @@ -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$ */ #include "animation.h" diff --git a/src/resources/animation.h b/src/resources/animation.h index aad93cda..8dfe8614 100644 --- a/src/resources/animation.h +++ b/src/resources/animation.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$ */ #ifndef _TMW_ANIMATION_H diff --git a/src/resources/buddylist.cpp b/src/resources/buddylist.cpp index 32d8d9f4..c85105c5 100644 --- a/src/resources/buddylist.cpp +++ b/src/resources/buddylist.cpp @@ -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$ */ #include diff --git a/src/resources/buddylist.h b/src/resources/buddylist.h index 3791a03a..6a3de8c4 100644 --- a/src/resources/buddylist.h +++ b/src/resources/buddylist.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$ */ #ifndef _TMW_BUDDYLIST_H diff --git a/src/resources/dye.cpp b/src/resources/dye.cpp index 195d5dd1..3be105d8 100644 --- a/src/resources/dye.cpp +++ b/src/resources/dye.cpp @@ -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: dye.cpp 3708 2007-11-04 11:52:44Z gmelquio $ */ #include diff --git a/src/resources/dye.h b/src/resources/dye.h index fe8669bb..528a1d91 100644 --- a/src/resources/dye.h +++ b/src/resources/dye.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: dye.h 3706 2007-11-03 21:04:51Z gmelquio $ */ #ifndef _TMW_DYE_H diff --git a/src/resources/image.cpp b/src/resources/image.cpp index d0dae462..77d77f96 100644 --- a/src/resources/image.cpp +++ b/src/resources/image.cpp @@ -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$ */ #include diff --git a/src/resources/image.h b/src/resources/image.h index 52f286f8..3677696f 100644 --- a/src/resources/image.h +++ b/src/resources/image.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$ */ #ifndef _TMW_IMAGE_H diff --git a/src/resources/imageloader.cpp b/src/resources/imageloader.cpp index d6539b05..29458ba3 100644 --- a/src/resources/imageloader.cpp +++ b/src/resources/imageloader.cpp @@ -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: imageloader.cpp 3515 2007-08-25 16:56:52Z gmelquio $ */ #include diff --git a/src/resources/imageloader.h b/src/resources/imageloader.h index 89f38eda..7979fd2f 100644 --- a/src/resources/imageloader.h +++ b/src/resources/imageloader.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: imageloader.h 3515 2007-08-25 16:56:52Z gmelquio $ */ #ifndef _TMW_IMAGELOADER_H diff --git a/src/resources/imageset.cpp b/src/resources/imageset.cpp index 1a753648..d7398c17 100644 --- a/src/resources/imageset.cpp +++ b/src/resources/imageset.cpp @@ -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$ */ #include diff --git a/src/resources/imageset.h b/src/resources/imageset.h index fa1840ec..58b7a8ea 100644 --- a/src/resources/imageset.h +++ b/src/resources/imageset.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$ */ #ifndef _TMW_IMAGESET_H diff --git a/src/resources/imagewriter.cpp b/src/resources/imagewriter.cpp index 7cfa16b4..d6d8a6c2 100644 --- a/src/resources/imagewriter.cpp +++ b/src/resources/imagewriter.cpp @@ -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$ */ #include "imagewriter.h" diff --git a/src/resources/imagewriter.h b/src/resources/imagewriter.h index 205e4584..632e2ae4 100644 --- a/src/resources/imagewriter.h +++ b/src/resources/imagewriter.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$ */ #include diff --git a/src/resources/itemdb.cpp b/src/resources/itemdb.cpp index 71bd898a..5ee40014 100644 --- a/src/resources/itemdb.cpp +++ b/src/resources/itemdb.cpp @@ -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$ */ #include diff --git a/src/resources/itemdb.h b/src/resources/itemdb.h index 0029129c..62a1e94c 100644 --- a/src/resources/itemdb.h +++ b/src/resources/itemdb.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$ */ #ifndef _TMW_ITEM_MANAGER_H diff --git a/src/resources/iteminfo.cpp b/src/resources/iteminfo.cpp index f1ebd0a9..fb2c8ffe 100644 --- a/src/resources/iteminfo.cpp +++ b/src/resources/iteminfo.cpp @@ -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$ */ #include "iteminfo.h" diff --git a/src/resources/iteminfo.h b/src/resources/iteminfo.h index 680c8d61..4678bc08 100644 --- a/src/resources/iteminfo.h +++ b/src/resources/iteminfo.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$ */ #ifndef _TMW_ITEMINFO_H_ diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp index eacbb0d8..4c37c239 100644 --- a/src/resources/mapreader.cpp +++ b/src/resources/mapreader.cpp @@ -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$ */ #include "mapreader.h" diff --git a/src/resources/mapreader.h b/src/resources/mapreader.h index 60056358..0142eb45 100644 --- a/src/resources/mapreader.h +++ b/src/resources/mapreader.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$ */ #ifndef _TMW_MAPREADER_H_ diff --git a/src/resources/monsterdb.cpp b/src/resources/monsterdb.cpp index bf2878bc..11b2baf7 100644 --- a/src/resources/monsterdb.cpp +++ b/src/resources/monsterdb.cpp @@ -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$ */ #include diff --git a/src/resources/monsterdb.h b/src/resources/monsterdb.h index 46a33b06..f1d69e72 100644 --- a/src/resources/monsterdb.h +++ b/src/resources/monsterdb.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$ */ #ifndef _TMW_MONSTER_DB_H diff --git a/src/resources/monsterinfo.cpp b/src/resources/monsterinfo.cpp index e492ccd3..7661c86b 100644 --- a/src/resources/monsterinfo.cpp +++ b/src/resources/monsterinfo.cpp @@ -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: monsterinfo.cpp 2650 2006-09-03 15:00:47Z b_lindeijer $ */ #include diff --git a/src/resources/monsterinfo.h b/src/resources/monsterinfo.h index 2f690756..84b131c6 100644 --- a/src/resources/monsterinfo.h +++ b/src/resources/monsterinfo.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: monsterinfo.h 2650 2006-09-03 15:00:47Z b_lindeijer $ */ #ifndef _TMW_MONSTERINFO_H_ diff --git a/src/resources/music.cpp b/src/resources/music.cpp index 161d8b01..2386aa43 100644 --- a/src/resources/music.cpp +++ b/src/resources/music.cpp @@ -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$ */ #include "music.h" diff --git a/src/resources/music.h b/src/resources/music.h index 72e76295..d50150b8 100644 --- a/src/resources/music.h +++ b/src/resources/music.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$ */ #ifndef _TMW_MUSIC_H diff --git a/src/resources/npcdb.cpp b/src/resources/npcdb.cpp index 5869e295..2f8d78d4 100644 --- a/src/resources/npcdb.cpp +++ b/src/resources/npcdb.cpp @@ -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$ */ #include "npcdb.h" diff --git a/src/resources/npcdb.h b/src/resources/npcdb.h index 2abf959b..00b4f99b 100644 --- a/src/resources/npcdb.h +++ b/src/resources/npcdb.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$ */ #ifndef _TMW_NPC_DB_H diff --git a/src/resources/resource.cpp b/src/resources/resource.cpp index 8f21f5d2..449caf55 100644 --- a/src/resources/resource.cpp +++ b/src/resources/resource.cpp @@ -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$ */ #include diff --git a/src/resources/resource.h b/src/resources/resource.h index 5b9a5eb8..e85e3147 100644 --- a/src/resources/resource.h +++ b/src/resources/resource.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$ */ #ifndef _TMW_RESOURCE_H diff --git a/src/resources/resourcemanager.cpp b/src/resources/resourcemanager.cpp index ef8671a8..073e41c4 100644 --- a/src/resources/resourcemanager.cpp +++ b/src/resources/resourcemanager.cpp @@ -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$ */ #include diff --git a/src/resources/resourcemanager.h b/src/resources/resourcemanager.h index da85e2f9..66813a9c 100644 --- a/src/resources/resourcemanager.h +++ b/src/resources/resourcemanager.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$ */ #ifndef _TMW_RESOURCE_MANAGER_H diff --git a/src/resources/soundeffect.cpp b/src/resources/soundeffect.cpp index ec9bc65c..e21fd2b0 100644 --- a/src/resources/soundeffect.cpp +++ b/src/resources/soundeffect.cpp @@ -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$ */ #include "soundeffect.h" diff --git a/src/resources/soundeffect.h b/src/resources/soundeffect.h index 866c53ec..c3ff6668 100644 --- a/src/resources/soundeffect.h +++ b/src/resources/soundeffect.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$ */ #ifndef _TMW_SOUND_EFFECT_H diff --git a/src/resources/spritedef.cpp b/src/resources/spritedef.cpp index a6d8891e..289df2e5 100644 --- a/src/resources/spritedef.cpp +++ b/src/resources/spritedef.cpp @@ -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$ */ #include diff --git a/src/resources/spritedef.h b/src/resources/spritedef.h index 72c2566f..c7b94d9a 100644 --- a/src/resources/spritedef.h +++ b/src/resources/spritedef.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$ */ #ifndef _TMW_SPRITEDEF_H diff --git a/src/serverinfo.h b/src/serverinfo.h index 4f527128..4d2bb525 100644 --- a/src/serverinfo.h +++ b/src/serverinfo.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$ */ #ifndef _TMW_SERVERINFO_ diff --git a/src/shopitem.cpp b/src/shopitem.cpp index ed5d30a9..9888f829 100644 --- a/src/shopitem.cpp +++ b/src/shopitem.cpp @@ -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$ */ #include "shopitem.h" diff --git a/src/shopitem.h b/src/shopitem.h index ffafbebe..f0c00ef0 100644 --- a/src/shopitem.h +++ b/src/shopitem.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$ */ #ifndef _SHOPITEM_H_ diff --git a/src/simpleanimation.cpp b/src/simpleanimation.cpp index f425d3c1..e8c26df1 100644 --- a/src/simpleanimation.cpp +++ b/src/simpleanimation.cpp @@ -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$ */ #include "simpleanimation.h" diff --git a/src/simpleanimation.h b/src/simpleanimation.h index 561c540d..577268a8 100644 --- a/src/simpleanimation.h +++ b/src/simpleanimation.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$ */ #ifndef _TMW_SIMPLEANIMAION_H diff --git a/src/sound.cpp b/src/sound.cpp index 0a20d3f2..888dcc31 100644 --- a/src/sound.cpp +++ b/src/sound.cpp @@ -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$ */ #include "sound.h" diff --git a/src/sound.h b/src/sound.h index ebcd6442..0c2af74b 100644 --- a/src/sound.h +++ b/src/sound.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$ */ #ifndef _TMW_SOUND_H diff --git a/src/sprite.h b/src/sprite.h index 89780519..0e0a95db 100644 --- a/src/sprite.h +++ b/src/sprite.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$ */ #ifndef _TMW_SPRITE_H_ diff --git a/src/text.cpp b/src/text.cpp index 4212c5c8..22228ccb 100644 --- a/src/text.cpp +++ b/src/text.cpp @@ -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$ */ #include "text.h" diff --git a/src/text.h b/src/text.h index 7ea96dee..e57fc06a 100644 --- a/src/text.h +++ b/src/text.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$ */ #ifndef _TMW_TEXT_H diff --git a/src/textmanager.cpp b/src/textmanager.cpp index b4135763..49ad1824 100644 --- a/src/textmanager.cpp +++ b/src/textmanager.cpp @@ -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$ */ #include "textmanager.h" diff --git a/src/textmanager.h b/src/textmanager.h index f7f1247c..ec82c61f 100644 --- a/src/textmanager.h +++ b/src/textmanager.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$ */ #ifndef _TMW_TEXTMANAGER_H diff --git a/src/textparticle.cpp b/src/textparticle.cpp index 89466006..308c043d 100644 --- a/src/textparticle.cpp +++ b/src/textparticle.cpp @@ -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$ */ #include "textparticle.h" diff --git a/src/textparticle.h b/src/textparticle.h index 34badb57..3a0ba674 100644 --- a/src/textparticle.h +++ b/src/textparticle.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$ */ #ifndef _TEXTPARTICLE_H diff --git a/src/tileset.h b/src/tileset.h index 625fac1b..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$ */ #ifndef _TMW_TILESET_H_ diff --git a/src/utils/base64.cpp b/src/utils/base64.cpp index 9a8f6356..8cea60f9 100644 --- a/src/utils/base64.cpp +++ b/src/utils/base64.cpp @@ -26,7 +26,6 @@ | Author: Jim Winstead (jimw@php.net) | +----------------------------------------------------------------------+ */ -/* $Id$ */ #include #include diff --git a/src/utils/base64.h b/src/utils/base64.h index ff20ac53..c802207b 100644 --- a/src/utils/base64.h +++ b/src/utils/base64.h @@ -26,7 +26,6 @@ | Author: Jim Winstead (jimw@php.net) | +----------------------------------------------------------------------+ */ -/* $Id$ */ #ifndef _TMW_BASE64_H #define _TMW_BASE64_H diff --git a/src/utils/dtor.h b/src/utils/dtor.h index f2c6c1b8..f7c790c6 100644 --- a/src/utils/dtor.h +++ b/src/utils/dtor.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$ */ #ifndef _TMW_UTILS_DTOR_H diff --git a/src/utils/fastsqrt.h b/src/utils/fastsqrt.h index afadb901..78768149 100644 --- a/src/utils/fastsqrt.h +++ b/src/utils/fastsqrt.h @@ -1,26 +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. - * - * $Id$ - */ - -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/utils/strprintf.cpp b/src/utils/strprintf.cpp index 77a6b235..c5d7a595 100644 --- a/src/utils/strprintf.cpp +++ b/src/utils/strprintf.cpp @@ -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: strprintf.cpp 3416 2007-08-06 06:20:14Z gmelquio $ */ #include diff --git a/src/utils/strprintf.h b/src/utils/strprintf.h index 66d753fa..382ab6e0 100644 --- a/src/utils/strprintf.h +++ b/src/utils/strprintf.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: strprintf.h 3417 2007-08-06 11:14:45Z gmelquio $ */ #ifndef _TMW_UTILS_STRPRINTF_H diff --git a/src/utils/tostring.h b/src/utils/tostring.h index 95b8985f..d2dd941a 100644 --- a/src/utils/tostring.h +++ b/src/utils/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$ */ #ifndef _TMW_UTILS_TOSTRING_H diff --git a/src/utils/trim.h b/src/utils/trim.h index fec99100..a7c40ca2 100644 --- a/src/utils/trim.h +++ b/src/utils/trim.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$ */ #ifndef _TMW_UTILS_TRIM_H_ diff --git a/src/utils/xml.cpp b/src/utils/xml.cpp index 98b474cb..47f1bd04 100644 --- a/src/utils/xml.cpp +++ b/src/utils/xml.cpp @@ -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$ */ #include "xml.h" diff --git a/src/utils/xml.h b/src/utils/xml.h index 5473b2ca..5a5c756b 100644 --- a/src/utils/xml.h +++ b/src/utils/xml.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$ */ #ifndef _TMW_XML_H diff --git a/src/vector.h b/src/vector.h index 7a5da241..b19f6c64 100644 --- a/src/vector.h +++ b/src/vector.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$ */ #ifndef _TMW_VECTOR_H_ diff --git a/tools/tmxcopy/base64.cpp b/tools/tmxcopy/base64.cpp index 9a8f6356..8cea60f9 100644 --- a/tools/tmxcopy/base64.cpp +++ b/tools/tmxcopy/base64.cpp @@ -26,7 +26,6 @@ | Author: Jim Winstead (jimw@php.net) | +----------------------------------------------------------------------+ */ -/* $Id$ */ #include #include diff --git a/tools/tmxcopy/base64.h b/tools/tmxcopy/base64.h index ff20ac53..c802207b 100644 --- a/tools/tmxcopy/base64.h +++ b/tools/tmxcopy/base64.h @@ -26,7 +26,6 @@ | Author: Jim Winstead (jimw@php.net) | +----------------------------------------------------------------------+ */ -/* $Id$ */ #ifndef _TMW_BASE64_H #define _TMW_BASE64_H diff --git a/tools/tmxcopy/tostring.h b/tools/tmxcopy/tostring.h index 95b8985f..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$ */ #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 -- cgit v1.2.3-60-g2f50 From 1515a857d92de384e55f56124273e7ceda0b994c Mon Sep 17 00:00:00 2001 From: David Athay Date: Mon, 17 Nov 2008 20:35:54 +0000 Subject: Added Xcode files. --- English.lproj/InfoPlist.strings | Bin 0 -> 204 bytes English.lproj/main.nib/classes.nib | 4 + English.lproj/main.nib/info.nib | 26 + English.lproj/main.nib/objects.xib | 272 +++++ Info.plist | 26 + LICENSE.rtf | 15 + The Mana World.icns | Bin 0 -> 65136 bytes src/SDLMain.h | 11 + src/SDLMain.m | 278 +++++ themanaworld.xcodeproj/garfield.mode1 | 1329 +++++++++++++++++++++++ themanaworld.xcodeproj/garfield.mode1v3 | 1377 ++++++++++++++++++++++++ themanaworld.xcodeproj/garfield.pbxuser | 730 +++++++++++++ themanaworld.xcodeproj/project.pbxproj | 1761 +++++++++++++++++++++++++++++++ 13 files changed, 5829 insertions(+) create mode 100644 English.lproj/InfoPlist.strings create mode 100644 English.lproj/main.nib/classes.nib create mode 100644 English.lproj/main.nib/info.nib create mode 100644 English.lproj/main.nib/objects.xib create mode 100644 Info.plist create mode 100644 LICENSE.rtf create mode 100644 The Mana World.icns create mode 100755 src/SDLMain.h create mode 100755 src/SDLMain.m create mode 100644 themanaworld.xcodeproj/garfield.mode1 create mode 100644 themanaworld.xcodeproj/garfield.mode1v3 create mode 100644 themanaworld.xcodeproj/garfield.pbxuser create mode 100644 themanaworld.xcodeproj/project.pbxproj diff --git a/English.lproj/InfoPlist.strings b/English.lproj/InfoPlist.strings new file mode 100644 index 00000000..7080cf94 Binary files /dev/null and b/English.lproj/InfoPlist.strings differ diff --git a/English.lproj/main.nib/classes.nib b/English.lproj/main.nib/classes.nib new file mode 100644 index 00000000..ea58db11 --- /dev/null +++ b/English.lproj/main.nib/classes.nib @@ -0,0 +1,4 @@ +{ +IBClasses = (); +IBVersion = 1; +} diff --git a/English.lproj/main.nib/info.nib b/English.lproj/main.nib/info.nib new file mode 100644 index 00000000..dfd1f0e8 --- /dev/null +++ b/English.lproj/main.nib/info.nib @@ -0,0 +1,26 @@ + + + + + IBDocumentLocation + 117 12 356 240 0 0 1920 1178 + IBEditorPositions + + 29 + 110 302 204 44 0 0 1920 1178 + + IBFramework Version + 431.0 + IBOldestOS + 3 + IBOpenObjects + + 29 + 166 + + IBSystem Version + 8A383 + targetFramework + IBCarbonFramework + + diff --git a/English.lproj/main.nib/objects.xib b/English.lproj/main.nib/objects.xib new file mode 100644 index 00000000..d1922ce1 --- /dev/null +++ b/English.lproj/main.nib/objects.xib @@ -0,0 +1,272 @@ + + + IBCarbonFramework + + NSApplication + + + + main + + + themanaworld + + themanaworld + + + About themanaworld + 0 + abou + + + _NSAppleMenu + + + + File + + File + + + New + n + new + + + Open… + o + open + + + TRUE + + + Close + w + clos + + + Save + s + save + + + Save As… + S + svas + + + Revert + r + rvrt + + + TRUE + + + Page Setup… + P + page + + + Print… + p + prnt + + + + + + Edit + + Edit + + + Undo + z + undo + + + Redo + Z + redo + + + TRUE + + + Cut + x + cut + + + Copy + c + copy + + + Paste + v + past + + + Delete + clea + + + Select All + a + sall + + + TRUE + + + Special Characters… + chrp + + + + + + Window + + Window + + + TRUE + Minimize + m + mini + + + TRUE + Minimize All + m + 1572864 + mina + + + Zoom + zoom + + + TRUE + + + TRUE + Bring All to Front + bfrt + + + TRUE + Arrange in Front + 1572864 + frnt + + + _NSWindowsMenu + + + + _NSMainMenu + + + + + + + + + + + + + + + + + + + + + + + + + 204 300 564 780 + Window + + 0 0 360 480 + 0 0 480 360 + + FALSE + TRUE + TRUE + FALSE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Files Owner + + MainWindow + + MenuBar + + + 200 + diff --git a/Info.plist b/Info.plist new file mode 100644 index 00000000..76f8dc76 --- /dev/null +++ b/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + The Mana World + CFBundleIconFile + The Mana World.icns + CFBundleIdentifier + TMW + CFBundleName + The Mana World + CFBundlePackageType + APPL + CFBundleSignature + tmw. + CFBundleVersion + 1.0 + NSMainNibFile + main + NSPrincipleClass + NSApplication + + 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/The Mana World.icns b/The Mana World.icns new file mode 100644 index 00000000..7230a099 Binary files /dev/null and b/The Mana World.icns differ 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 + Non-NIB-Code & other changes: Max Horn + + Feel free to customize this file to suit your needs +*/ + +#import + +@interface SDLMain : NSObject +@end diff --git a/src/SDLMain.m b/src/SDLMain.m new file mode 100755 index 00000000..19694b5f --- /dev/null +++ b/src/SDLMain.m @@ -0,0 +1,278 @@ +/* SDLMain.m - main entry point for our Cocoa-ized SDL app + Initial Version: Darrell Walisser + Non-NIB-Code & other changes: Max Horn + + Feel free to customize this file to suit your needs +*/ + +#import "SDL.h" +#import "SDLMain.h" +#import /* for MAXPATHLEN */ +#import + +/* Use this flag to determine whether we use SDLMain.nib or not */ +#define SDL_USE_NIB_FILE 0 + + +static int gArgc; +static char **gArgv; +static BOOL gFinderLaunch; + +#if SDL_USE_NIB_FILE +/* A helper category for NSString */ +@interface NSString (ReplaceSubString) +- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString; +@end +#else +/* An internal Apple class used to setup Apple menus */ +@interface NSAppleMenuController:NSObject {} +- (void)controlMenu:(NSMenu *)aMenu; +@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 +{ + char parentdir[MAXPATHLEN]; + char *c; + + strncpy ( parentdir, gArgv[0], sizeof(parentdir) ); + c = (char*) parentdir; + + while (*c != '\0') /* go to end */ + c++; + + while (*c != '/') /* back up to parent */ + c--; + + *c++ = '\0'; /* cut off last part (binary name) */ + + if (shouldChdir) + { + assert ( chdir (parentdir) == 0 ); /* chdir to the binary app's parent */ + assert ( chdir ("../../../") == 0 ); /* chdir to the .app's parent */ + } +} + +#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 + +void setupAppleMenu(void) +{ + /* warning: this code is very odd */ + NSAppleMenuController *appleMenuController; + NSMenu *appleMenu; + NSMenuItem *appleMenuItem; + + appleMenuController = [[NSAppleMenuController alloc] init]; + appleMenu = [[NSMenu alloc] initWithTitle:@""]; + appleMenuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""]; + + [appleMenuItem setSubmenu:appleMenu]; + + /* yes, we do need to add it and then remove it -- + if you don't add it, it doesn't get displayed + if you don't remove it, you have an extra, titleless item in the menubar + when you remove it, it appears to stick around + very, very odd */ + [[NSApp mainMenu] addItem:appleMenuItem]; + [appleMenuController controlMenu:appleMenu]; + [[NSApp mainMenu] removeItem:appleMenuItem]; + [appleMenu release]; + [appleMenuItem release]; +} + +/* Create a window menu */ +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 */ +void CustomApplicationMain (argc, argv) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + SDLMain *sdlMain; + + /* Ensure the application object is initialised */ + [SDLApplication sharedApplication]; + + /* Set up the menubar */ + [NSApp setMainMenu:[[NSMenu alloc] init]]; + setupAppleMenu(); + 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 + +/* 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:[[NSProcessInfo processInfo] processName]]; +#endif + + /* Hand off to main application code */ + 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 */ + int i; + + /* This is passed if we are launched by double-clicking */ + if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) { + gArgc = 1; + gFinderLaunch = YES; + } else { + gArgc = argc; + gFinderLaunch = NO; + } + gArgv = (char**) malloc (sizeof(*gArgv) * (gArgc+1)); + assert (gArgv != NULL); + for (i = 0; i < gArgc; i++) + gArgv[i] = argv[i]; + gArgv[i] = NULL; + +#if SDL_USE_NIB_FILE + [SDLApplication poseAsClass:[NSApplication class]]; + NSApplicationMain (argc, argv); +#else + CustomApplicationMain (argc, argv); +#endif + return 0; +} 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 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXRunSessionModule + Name + Run Log + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1 + FavBarConfig + + PBXProjectModuleGUID + 92BC40BF0BAEE965000DAB7F + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1 + MajorVersion + 31 + MinorVersion + 1 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-target-popup + action + NSToolbarFlexibleSpaceItem + buildOrClean + build-and-runOrDebug + debug + clean-target + com.apple.ide.PBXToolbarStopButton + get-info + toggle-editor + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 20286C29FDCF999611CA2CEA + 20286C2AFDCF999611CA2CEA + 20286C32FDCF999611CA2CEA + 1C37FBAC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 78 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 1010}, {186, 520}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 538}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 372 210 780 579 0 0 1280 832 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + MyNewFile14.java + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + MyNewFile14.java + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {572, 0}} + RubberWindowFrame + 372 210 780 579 0 0 1280 832 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 5}, {572, 533}} + RubberWindowFrame + 372 210 780 579 0 0 1280 832 + + Module + XCDetailModule + Proportion + 533pt + + + Proportion + 572pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 924A47AB0D1069F5004FEA83 + 1CE0B1FE06471DED0097A5F4 + 924A47AC0D1069F5004FEA83 + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.short + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + 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 '%@'? + WindowJustification + 5 + WindowOrderList + + 92BC40B30BAEE8C1000DAB7F + /Users/garfield/programming/themanaworld/tmw/branches/0.0/themanaworld.xcodeproj + + WindowString + 372 210 780 579 0 0 1280 832 + WindowTools + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {553, 0}} + RubberWindowFrame + 316 222 553 548 0 0 1280 832 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + + ContentConfiguration + + PBXBuildLogShowsTranscriptDefaultKey + {{0, 5}, {553, 497}} + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 5}, {553, 502}} + RubberWindowFrame + 316 222 553 548 0 0 1280 832 + + Module + PBXBuildResultsModule + Proportion + 502pt + + + Proportion + 507pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 92BC40B30BAEE8C1000DAB7F + 924A47B10D107075004FEA83 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.build + WindowString + 316 222 553 548 0 0 1280 832 + WindowToolGUID + 92BC40B30BAEE8C1000DAB7F + WindowToolIsVisible + + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debug + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.find + IsVertical + + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + playerhandler.cpp + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {781, 212}} + RubberWindowFrame + 212 362 781 470 0 0 1280 832 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 212pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{0, 217}, {781, 212}} + RubberWindowFrame + 212 362 781 470 0 0 1280 832 + + Module + PBXProjectFindModule + Proportion + 212pt + + + Proportion + 429pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + + TableOfContents + + 1C530D57069F1CE1000CFCEE + 92E427510C1EB4AC000361B7 + 92E427520C1EB4AC000361B7 + 1CDD528C0622207200134675 + 1CD0528E0623707200166675 + + WindowString + 212 362 781 470 0 0 1280 832 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + + + + Identifier + MENUSEPARATOR + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {440, 358}} + RubberWindowFrame + 650 41 440 400 0 0 1280 1002 + + Module + PBXDebugCLIModule + Proportion + 358pt + + + Proportion + 358pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAAD065D492600B07095 + 1C78EAAE065D492600B07095 + 1C78EAAC065D492600B07095 + + WindowString + 650 41 440 400 0 0 1280 1002 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.run + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + LauncherConfigVersion + 3 + PBXProjectModuleGUID + 1CD0528B0623707200166675 + PBXProjectModuleLabel + Run + Runner + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {493, 167}} + {{0, 176}, {493, 267}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {405, 443}} + {{414, 0}, {514, 443}} + + + + + GeometryConfiguration + + Frame + {{0, 0}, {459, 159}} + RubberWindowFrame + 316 570 459 200 0 0 1280 832 + + Module + PBXRunSessionModule + Proportion + 159pt + + + Proportion + 159pt + + + Name + Run Log + ServiceClasses + + PBXRunSessionModule + + StatusbarIsVisible + + TableOfContents + + 1C0AD2B3069F1EA900FABCE6 + 92AA62E70C21BDEA007FAAD0 + 1CD0528B0623707200166675 + 92AA62E80C21BDEA007FAAD0 + + ToolbarConfiguration + xcode.toolbar.config.run + WindowString + 316 570 459 200 0 0 1280 832 + WindowToolGUID + 1C0AD2B3069F1EA900FABCE6 + WindowToolIsVisible + + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 2 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpoints + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimator + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + + diff --git a/themanaworld.xcodeproj/garfield.mode1v3 b/themanaworld.xcodeproj/garfield.mode1v3 new file mode 100644 index 00000000..fc9662d9 --- /dev/null +++ b/themanaworld.xcodeproj/garfield.mode1v3 @@ -0,0 +1,1377 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + 92A4CC870D1C46A000CA28FB + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-target-popup + active-buildstyle-popup + action + NSToolbarFlexibleSpaceItem + buildOrClean + build-and-goOrGo + com.apple.ide.PBXToolbarStopButton + get-info + toggle-editor + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 20286C29FDCF999611CA2CEA + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 520}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 538}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 670 364 780 579 0 0 1680 1028 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + physfs.c + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + physfs.c + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {572, 160}} + RubberWindowFrame + 670 364 780 579 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 160pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 165}, {572, 373}} + RubberWindowFrame + 670 364 780 579 0 0 1680 1028 + + Module + XCDetailModule + Proportion + 373pt + + + Proportion + 572pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 920378B80ED200E400D3712D + 1CE0B1FE06471DED0097A5F4 + 920378B90ED200E400D3712D + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + 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 '%@'? + WindowJustification + 5 + WindowOrderList + + 1C78EAAD065D492600B07095 + 1CD10A99069EF8BA00B06720 + 92A4CC8A0D1C5F1E00CA28FB + /Users/garfield/programming/tmwclient/themanaworld.xcodeproj + + WindowString + 670 364 780 579 0 0 1680 1028 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {553, 0}} + RubberWindowFrame + 490 365 553 548 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + + ContentConfiguration + + PBXBuildLogShowsTranscriptDefaultKey + {{0, 325}, {553, 177}} + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 5}, {553, 502}} + RubberWindowFrame + 490 365 553 548 0 0 1680 1028 + + Module + PBXBuildResultsModule + Proportion + 502pt + + + Proportion + 507pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 92A4CC8A0D1C5F1E00CA28FB + 92037A230ED20C3200D3712D + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 490 365 553 548 0 0 1680 1028 + WindowToolGUID + 92A4CC8A0D1C5F1E00CA28FB + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debugger + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {316, 203}} + {{316, 0}, {378, 203}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 203}} + {{0, 203}, {694, 178}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 381}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 120 + Value + 85 + Summary + 986 + + Frame + {{316, 0}, {378, 203}} + RubberWindowFrame + 348 319 694 422 0 0 1680 1028 + + RubberWindowFrame + 348 319 694 422 0 0 1680 1028 + + Module + PBXDebugSessionModule + Proportion + 381pt + + + Proportion + 381pt + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + + TableOfContents + + 1CD10A99069EF8BA00B06720 + 92037A240ED20C3200D3712D + 1C162984064C10D400B95A72 + 92037A250ED20C3200D3712D + 92037A260ED20C3200D3712D + 92037A270ED20C3200D3712D + 92037A280ED20C3200D3712D + 92037A290ED20C3200D3712D + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 348 319 694 422 0 0 1680 1028 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.find + IsVertical + + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {781, 212}} + RubberWindowFrame + 212 362 781 470 0 0 1280 832 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 212pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{0, 217}, {781, 212}} + RubberWindowFrame + 212 362 781 470 0 0 1280 832 + + Module + PBXProjectFindModule + Proportion + 212pt + + + Proportion + 429pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + + TableOfContents + + 1C530D57069F1CE1000CFCEE + 92983E440D3A6D3600350ADB + 92983E450D3A6D3600350ADB + 1CDD528C0622207200134675 + 1CD0528E0623707200166675 + + WindowString + 212 362 781 470 0 0 1280 832 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + MENUSEPARATOR + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debuggerConsole + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {440, 359}} + RubberWindowFrame + 655 284 440 400 0 0 1680 1028 + + Module + PBXDebugCLIModule + Proportion + 359pt + + + Proportion + 359pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + + TableOfContents + + 1C78EAAD065D492600B07095 + 92037A2A0ED20C3200D3712D + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 655 284 440 400 0 0 1680 1028 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + FirstTimeWindowDisplayed + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.breakpoints + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 243 383 744 409 0 0 1280 832 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 243 383 744 409 0 0 1280 832 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + + TableOfContents + + 92EE9EF30D2E0CA400DDE300 + 92EE9EF40D2E0CA400DDE300 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 243 383 744 409 0 0 1280 832 + WindowToolGUID + 92EE9EF30D2E0CA400DDE300 + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + + Layout + + + Dock + + + BecomeActive + + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/themanaworld.xcodeproj/garfield.pbxuser b/themanaworld.xcodeproj/garfield.pbxuser new file mode 100644 index 00000000..c2eef960 --- /dev/null +++ b/themanaworld.xcodeproj/garfield.pbxuser @@ -0,0 +1,730 @@ +// !$*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 = 248643809; + PBXWorkspaceStateSaveDate = 248643809; + }; + 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}}"; + }; + }; + 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}"; + }; + }; + 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}}"; + }; + }; + 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}, {557, 2240}}"; + sepNavSelRange = "{0, 0}"; + 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}, {718, 7028}}"; + sepNavSelRange = "{12276, 0}"; + sepNavVisRange = "{11882, 995}"; + 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}, {806, 5278}}"; + sepNavSelRange = "{776, 0}"; + sepNavVisRange = "{0, 1283}"; + 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..795e832d --- /dev/null +++ b/themanaworld.xcodeproj/project.pbxproj @@ -0,0 +1,1761 @@ +// !$*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 */; }; + 920D9ADF0DE09DC0003D7E61 /* Info.plist in Copy plist */ = {isa = PBXBuildFile; fileRef = 924A42600C0874D00066885E /* Info.plist */; }; + 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 */; }; + 924A3E580C085E600066885E /* main.nib in Resources */ = {isa = PBXBuildFile; fileRef = 02345980000FD03B11CA0E72 /* main.nib */; }; + 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 */; }; + 92FD19A20DDCD60C00D14E5D /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 92FD19A00DDCD60C00D14E5D /* InfoPlist.strings */; }; + 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 */ + 920D9AE20DE09DCA003D7E61 /* Copy plist */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ..; + dstSubfolderSpec = 6; + files = ( + 920D9ADF0DE09DC0003D7E61 /* Info.plist in Copy plist */, + ); + name = "Copy plist"; + runOnlyForDeploymentPostprocessing = 0; + }; + 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 */ + 1870340FFE93FCAF11CA0CD7 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/main.nib; sourceTree = ""; }; + 20286C33FDCF999611CA2CEA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; + 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 = ""; }; + 92024D2B0CF1BD9E006B55CB /* keyboardconfig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = keyboardconfig.h; path = src/keyboardconfig.h; sourceTree = ""; }; + 92024D2C0CF1BD9E006B55CB /* vector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = vector.h; path = src/vector.h; sourceTree = ""; }; + 92024D360CF1BDF7006B55CB /* setup_keyboard.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = setup_keyboard.cpp; sourceTree = ""; }; + 92024D370CF1BDF7006B55CB /* setup_keyboard.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = setup_keyboard.h; sourceTree = ""; }; + 92024D400CF1BE22006B55CB /* fastsqrt.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = fastsqrt.h; sourceTree = ""; }; + 92024D420CF1BE22006B55CB /* trim.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = trim.h; sourceTree = ""; }; + 92024D5B0CF1BE5C006B55CB /* close_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = close_button.png; sourceTree = ""; }; + 92024D5C0CF1BE5C006B55CB /* item_shortcut_bgr.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = item_shortcut_bgr.png; sourceTree = ""; }; + 92024D5D0CF1BE5C006B55CB /* unknown-item.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "unknown-item.png"; sourceTree = ""; }; + 92024DDD0CF1BFC8006B55CB /* The Mana World.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "The Mana World.icns"; sourceTree = ""; }; + 92024E740CF1DCF6006B55CB /* imageloader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = imageloader.cpp; sourceTree = ""; }; + 92024E750CF1DCF6006B55CB /* imageloader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = imageloader.h; sourceTree = ""; }; + 92037A190ED2035A00D3712D /* SDLMain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLMain.h; path = src/SDLMain.h; sourceTree = ""; }; + 92037A1A0ED2037300D3712D /* particleemitterprop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = particleemitterprop.h; path = src/particleemitterprop.h; sourceTree = ""; }; + 92037A1B0ED2037300D3712D /* text.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = text.cpp; path = src/text.cpp; sourceTree = ""; }; + 92037A1C0ED2037300D3712D /* text.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = text.h; path = src/text.h; sourceTree = ""; }; + 92037A1D0ED2037300D3712D /* textmanager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = textmanager.cpp; path = src/textmanager.cpp; sourceTree = ""; }; + 92037A1E0ED2037300D3712D /* textmanager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = textmanager.h; path = src/textmanager.h; sourceTree = ""; }; + 922CD9560E3D00900074C50E /* npcdb.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = npcdb.cpp; sourceTree = ""; }; + 922CD9570E3D00900074C50E /* npcdb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = npcdb.h; sourceTree = ""; }; + 922CD95D0E3D01080074C50E /* shopitem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = shopitem.cpp; path = src/shopitem.cpp; sourceTree = ""; }; + 922CD95E0E3D01080074C50E /* shopitem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = shopitem.h; path = src/shopitem.h; sourceTree = ""; }; + 922CD9EC0E3D02C50074C50E /* guichan.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = guichan.framework; sourceTree = ""; }; + 924A39E80C0784280066885E /* animationparticle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = animationparticle.cpp; path = src/animationparticle.cpp; sourceTree = ""; }; + 924A39E90C0784280066885E /* animationparticle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = animationparticle.h; path = src/animationparticle.h; sourceTree = ""; }; + 924A39EA0C0784280066885E /* imageparticle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = imageparticle.cpp; path = src/imageparticle.cpp; sourceTree = ""; }; + 924A39EB0C0784280066885E /* imageparticle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = imageparticle.h; path = src/imageparticle.h; sourceTree = ""; }; + 924A39EC0C0784280066885E /* particle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = particle.cpp; path = src/particle.cpp; sourceTree = ""; }; + 924A39ED0C0784280066885E /* particle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = particle.h; path = src/particle.h; sourceTree = ""; }; + 924A39EE0C0784280066885E /* particleemitter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = particleemitter.cpp; path = src/particleemitter.cpp; sourceTree = ""; }; + 924A39EF0C0784280066885E /* particleemitter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = particleemitter.h; path = src/particleemitter.h; sourceTree = ""; }; + 924A39F00C0784280066885E /* textparticle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = textparticle.cpp; path = src/textparticle.cpp; sourceTree = ""; }; + 924A39F10C0784280066885E /* textparticle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = textparticle.h; path = src/textparticle.h; sourceTree = ""; }; + 924A3A100C07A60B0066885E /* resizegrip.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = resizegrip.cpp; sourceTree = ""; }; + 924A3A110C07A60B0066885E /* resizegrip.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = resizegrip.h; sourceTree = ""; }; + 924A3E600C085ED70066885E /* bg_quad_dis.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bg_quad_dis.png; sourceTree = ""; }; + 924A3E610C085ED70066885E /* browserfont.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = browserfont.png; sourceTree = ""; }; + 924A3E620C085ED70066885E /* button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = button.png; sourceTree = ""; }; + 924A3E630C085ED70066885E /* button_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = button_disabled.png; sourceTree = ""; }; + 924A3E640C085ED70066885E /* buttonhi.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttonhi.png; sourceTree = ""; }; + 924A3E650C085ED70066885E /* buttonpress.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttonpress.png; sourceTree = ""; }; + 924A3E660C085ED70066885E /* checkbox.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = checkbox.png; sourceTree = ""; }; + 924A3E680C085ED70066885E /* deepbox.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = deepbox.png; sourceTree = ""; }; + 924A3E690C085ED70066885E /* fixedfont.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = fixedfont.png; sourceTree = ""; }; + 924A3E6A0C085ED70066885E /* hits_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hits_blue.png; sourceTree = ""; }; + 924A3E6B0C085ED70066885E /* hits_red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hits_red.png; sourceTree = ""; }; + 924A3E6C0C085ED70066885E /* hits_yellow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hits_yellow.png; sourceTree = ""; }; + 924A3E6D0C085ED70066885E /* hscroll_left_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hscroll_left_default.png; sourceTree = ""; }; + 924A3E6E0C085ED70066885E /* hscroll_left_highlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hscroll_left_highlight.png; sourceTree = ""; }; + 924A3E6F0C085ED70066885E /* hscroll_left_pressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hscroll_left_pressed.png; sourceTree = ""; }; + 924A3E700C085ED70066885E /* hscroll_right_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hscroll_right_default.png; sourceTree = ""; }; + 924A3E710C085ED70066885E /* hscroll_right_highlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hscroll_right_highlight.png; sourceTree = ""; }; + 924A3E720C085ED70066885E /* hscroll_right_pressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = hscroll_right_pressed.png; sourceTree = ""; }; + 924A3E740C085ED70066885E /* menuitemD.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menuitemD.png; sourceTree = ""; }; + 924A3E750C085ED70066885E /* menuitemF.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menuitemF.png; sourceTree = ""; }; + 924A3E760C085ED70066885E /* menuitemN.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menuitemN.png; sourceTree = ""; }; + 924A3E770C085ED70066885E /* menuitemP.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menuitemP.png; sourceTree = ""; }; + 924A3E780C085ED70066885E /* mouse.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = mouse.png; sourceTree = ""; }; + 924A3E790C085ED70066885E /* radioin.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = radioin.png; sourceTree = ""; }; + 924A3E7A0C085ED70066885E /* radioout.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = radioout.png; sourceTree = ""; }; + 924A3E7B0C085ED70066885E /* resize.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = resize.png; sourceTree = ""; }; + 924A3E7C0C085ED70066885E /* rpgfont_wider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = rpgfont_wider.png; sourceTree = ""; }; + 924A3E7D0C085ED70066885E /* sansserif8.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = sansserif8.png; sourceTree = ""; }; + 924A3E7E0C085ED70066885E /* selection.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = selection.png; sourceTree = ""; }; + 924A3E7F0C085ED70066885E /* slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = slider.png; sourceTree = ""; }; + 924A3E800C085ED70066885E /* target-cursor-blue-l.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "target-cursor-blue-l.png"; sourceTree = ""; }; + 924A3E810C085ED70066885E /* target-cursor-blue-m.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "target-cursor-blue-m.png"; sourceTree = ""; }; + 924A3E820C085ED70066885E /* target-cursor-blue-s.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "target-cursor-blue-s.png"; sourceTree = ""; }; + 924A3E830C085ED70066885E /* target-cursor-red-l.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "target-cursor-red-l.png"; sourceTree = ""; }; + 924A3E840C085ED70066885E /* target-cursor-red-m.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "target-cursor-red-m.png"; sourceTree = ""; }; + 924A3E850C085ED70066885E /* target-cursor-red-s.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "target-cursor-red-s.png"; sourceTree = ""; }; + 924A3E860C085ED70066885E /* thickborder.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = thickborder.png; sourceTree = ""; }; + 924A3E870C085ED70066885E /* vscroll_blue.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_blue.png; sourceTree = ""; }; + 924A3E880C085ED70066885E /* vscroll_down_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_down_default.png; sourceTree = ""; }; + 924A3E890C085ED70066885E /* vscroll_down_highlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_down_highlight.png; sourceTree = ""; }; + 924A3E8A0C085ED70066885E /* vscroll_down_pressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_down_pressed.png; sourceTree = ""; }; + 924A3E8B0C085ED70066885E /* vscroll_grey.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_grey.png; sourceTree = ""; }; + 924A3E8C0C085ED70066885E /* vscroll_red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_red.png; sourceTree = ""; }; + 924A3E8D0C085ED70066885E /* vscroll_up_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_up_default.png; sourceTree = ""; }; + 924A3E8E0C085ED70066885E /* vscroll_up_highlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_up_highlight.png; sourceTree = ""; }; + 924A3E8F0C085ED70066885E /* vscroll_up_pressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = vscroll_up_pressed.png; sourceTree = ""; }; + 924A3E990C085ED70066885E /* error.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = error.png; sourceTree = ""; }; + 924A3E9A0C085ED70066885E /* login_wallpaper.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = login_wallpaper.png; sourceTree = ""; }; + 924A400A0C085ED80066885E /* about.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = about.txt; sourceTree = ""; }; + 924A400B0C085ED80066885E /* changes.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = changes.txt; sourceTree = ""; }; + 924A400D0C085ED80066885E /* commands.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = commands.txt; sourceTree = ""; }; + 924A400E0C085ED80066885E /* header.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = header.txt; sourceTree = ""; }; + 924A400F0C085ED80066885E /* index.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = index.txt; sourceTree = ""; }; + 924A40110C085ED80066885E /* skills.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = skills.txt; sourceTree = ""; }; + 924A40120C085ED80066885E /* support.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = support.txt; sourceTree = ""; }; + 924A40130C085ED80066885E /* team.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = team.txt; sourceTree = ""; }; + 924A40180C085ED80066885E /* tmw.ico */ = {isa = PBXFileReference; lastKnownFileType = image.ico; path = tmw.ico; sourceTree = ""; }; + 924A40190C085ED80066885E /* tmw.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = tmw.png; sourceTree = ""; }; + 924A401A0C085ED80066885E /* tmw.xpm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = tmw.xpm; sourceTree = ""; }; + 924A401C0C085ED80066885E /* items.xsd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = items.xsd; sourceTree = ""; }; + 924A42590C0871EC0066885E /* The Mana World.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "The Mana World.icns"; sourceTree = ""; }; + 924A42600C0874D00066885E /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 925350010BC12A3200115FD5 /* imageset.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = imageset.cpp; sourceTree = ""; }; + 925350020BC12A3200115FD5 /* imageset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = imageset.h; sourceTree = ""; }; + 926F9CF60DB005FA00AACD26 /* itemshortcut.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = itemshortcut.cpp; path = src/itemshortcut.cpp; sourceTree = ""; }; + 926F9CF70DB005FA00AACD26 /* itemshortcut.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = itemshortcut.h; path = src/itemshortcut.h; sourceTree = ""; }; + 926F9D410DB00AFC00AACD26 /* itemshortcutcontainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = itemshortcutcontainer.cpp; sourceTree = ""; }; + 926F9D420DB00AFC00AACD26 /* itemshortcutcontainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = itemshortcutcontainer.h; sourceTree = ""; }; + 926F9D430DB00AFC00AACD26 /* itemshortcutwindow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = itemshortcutwindow.cpp; sourceTree = ""; }; + 926F9D440DB00AFC00AACD26 /* itemshortcutwindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = itemshortcutwindow.h; sourceTree = ""; }; + 9294DAA00C17E73200FCEDE9 /* libpng.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libpng.framework; path = /Library/Frameworks/libpng.framework; sourceTree = ""; }; + 92A4CC9D0D1C622E00CA28FB /* dye.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dye.cpp; path = src/resources/dye.cpp; sourceTree = ""; }; + 92A4CCE00D1DA58D00CA28FB /* dir.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dir.c; sourceTree = ""; }; + 92A4CCE10D1DA58D00CA28FB /* grp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = grp.c; sourceTree = ""; }; + 92A4CCE20D1DA58D00CA28FB /* hog.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hog.c; sourceTree = ""; }; + 92A4CCE30D1DA58D00CA28FB /* lzma.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lzma.c; sourceTree = ""; }; + 92A4CCE40D1DA58D00CA28FB /* mvl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mvl.c; sourceTree = ""; }; + 92A4CCE50D1DA58D00CA28FB /* qpak.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = qpak.c; sourceTree = ""; }; + 92A4CCE60D1DA58D00CA28FB /* wad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wad.c; sourceTree = ""; }; + 92A4CCE70D1DA58D00CA28FB /* zip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zip.c; sourceTree = ""; }; + 92A4CCF00D1DA5A800CA28FB /* physfs_casefolding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = physfs_casefolding.h; sourceTree = ""; }; + 92A4CCF10D1DA5A800CA28FB /* physfs_platforms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = physfs_platforms.h; sourceTree = ""; }; + 92A4CCF20D1DA5C600CA28FB /* macosx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = macosx.c; sourceTree = ""; }; + 92A4CCFB0D1DA89800CA28FB /* physfs_unicode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = physfs_unicode.c; sourceTree = ""; }; + 92A4CCFE0D1DA8E500CA28FB /* LICENSE.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = LICENSE.rtf; sourceTree = ""; }; + 92BC3ECA0BAEE55A000DAB7F /* animatedsprite.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = animatedsprite.cpp; path = src/animatedsprite.cpp; sourceTree = ""; }; + 92BC3ECB0BAEE55A000DAB7F /* animatedsprite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = animatedsprite.h; path = src/animatedsprite.h; sourceTree = ""; }; + 92BC3ECC0BAEE55A000DAB7F /* being.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = being.cpp; path = src/being.cpp; sourceTree = ""; }; + 92BC3ECD0BAEE55A000DAB7F /* being.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = being.h; path = src/being.h; sourceTree = ""; }; + 92BC3ECE0BAEE55A000DAB7F /* beingmanager.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = beingmanager.cpp; path = src/beingmanager.cpp; sourceTree = ""; }; + 92BC3ECF0BAEE55A000DAB7F /* beingmanager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = beingmanager.h; path = src/beingmanager.h; sourceTree = ""; }; + 92BC3ED10BAEE55A000DAB7F /* configlistener.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = configlistener.h; path = src/configlistener.h; sourceTree = ""; }; + 92BC3ED20BAEE55A000DAB7F /* configuration.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = configuration.cpp; path = src/configuration.cpp; sourceTree = ""; }; + 92BC3ED30BAEE55A000DAB7F /* configuration.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = configuration.h; path = src/configuration.h; sourceTree = ""; }; + 92BC3EE40BAEE55A000DAB7F /* engine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = engine.cpp; path = src/engine.cpp; sourceTree = ""; }; + 92BC3EE50BAEE55A000DAB7F /* engine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = engine.h; path = src/engine.h; sourceTree = ""; }; + 92BC3EE60BAEE55A000DAB7F /* equipment.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = equipment.cpp; path = src/equipment.cpp; sourceTree = ""; }; + 92BC3EE70BAEE55A000DAB7F /* equipment.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = equipment.h; path = src/equipment.h; sourceTree = ""; }; + 92BC3EE80BAEE55A000DAB7F /* floor_item.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = floor_item.cpp; path = src/floor_item.cpp; sourceTree = ""; }; + 92BC3EE90BAEE55A000DAB7F /* floor_item.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = floor_item.h; path = src/floor_item.h; sourceTree = ""; }; + 92BC3EEA0BAEE55A000DAB7F /* flooritemmanager.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = flooritemmanager.cpp; path = src/flooritemmanager.cpp; sourceTree = ""; }; + 92BC3EEB0BAEE55A000DAB7F /* flooritemmanager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = flooritemmanager.h; path = src/flooritemmanager.h; sourceTree = ""; }; + 92BC3EEC0BAEE55A000DAB7F /* game.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = game.cpp; path = src/game.cpp; sourceTree = ""; }; + 92BC3EED0BAEE55A000DAB7F /* game.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = game.h; path = src/game.h; sourceTree = ""; }; + 92BC3EEE0BAEE55A000DAB7F /* graphics.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = graphics.cpp; path = src/graphics.cpp; sourceTree = ""; }; + 92BC3EEF0BAEE55A000DAB7F /* graphics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = graphics.h; path = src/graphics.h; sourceTree = ""; }; + 92BC3EF10BAEE55A000DAB7F /* box.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = box.cpp; sourceTree = ""; }; + 92BC3EF20BAEE55A000DAB7F /* box.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = box.h; sourceTree = ""; }; + 92BC3EF30BAEE55A000DAB7F /* browserbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = browserbox.cpp; sourceTree = ""; }; + 92BC3EF40BAEE55A000DAB7F /* browserbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = browserbox.h; sourceTree = ""; }; + 92BC3EF50BAEE55A000DAB7F /* buddywindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = buddywindow.cpp; sourceTree = ""; }; + 92BC3EF60BAEE55A000DAB7F /* buddywindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = buddywindow.h; sourceTree = ""; }; + 92BC3EF70BAEE55A000DAB7F /* button.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = button.cpp; sourceTree = ""; }; + 92BC3EF80BAEE55A000DAB7F /* button.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = button.h; sourceTree = ""; }; + 92BC3EF90BAEE55A000DAB7F /* buy.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = buy.cpp; sourceTree = ""; }; + 92BC3EFA0BAEE55A000DAB7F /* buy.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = buy.h; sourceTree = ""; }; + 92BC3EFB0BAEE55A000DAB7F /* buysell.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = buysell.cpp; sourceTree = ""; }; + 92BC3EFC0BAEE55A000DAB7F /* buysell.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = buysell.h; sourceTree = ""; }; + 92BC3EFD0BAEE55A000DAB7F /* char_select.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = char_select.cpp; sourceTree = ""; }; + 92BC3EFE0BAEE55A000DAB7F /* char_select.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = char_select.h; sourceTree = ""; }; + 92BC3EFF0BAEE55A000DAB7F /* char_server.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = char_server.cpp; sourceTree = ""; }; + 92BC3F000BAEE55A000DAB7F /* char_server.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = char_server.h; sourceTree = ""; }; + 92BC3F010BAEE55A000DAB7F /* chargedialog.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = chargedialog.cpp; sourceTree = ""; }; + 92BC3F020BAEE55A000DAB7F /* chargedialog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = chargedialog.h; sourceTree = ""; }; + 92BC3F030BAEE55A000DAB7F /* chat.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = chat.cpp; sourceTree = ""; }; + 92BC3F040BAEE55A000DAB7F /* chat.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = chat.h; sourceTree = ""; }; + 92BC3F050BAEE55A000DAB7F /* chatinput.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = chatinput.cpp; sourceTree = ""; }; + 92BC3F060BAEE55A000DAB7F /* chatinput.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = chatinput.h; sourceTree = ""; }; + 92BC3F070BAEE55A000DAB7F /* checkbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = checkbox.cpp; sourceTree = ""; }; + 92BC3F080BAEE55A000DAB7F /* checkbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = checkbox.h; sourceTree = ""; }; + 92BC3F090BAEE55A000DAB7F /* confirm_dialog.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = confirm_dialog.cpp; sourceTree = ""; }; + 92BC3F0A0BAEE55A000DAB7F /* confirm_dialog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = confirm_dialog.h; sourceTree = ""; }; + 92BC3F0B0BAEE55A000DAB7F /* connection.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = connection.cpp; sourceTree = ""; }; + 92BC3F0C0BAEE55A000DAB7F /* connection.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = connection.h; sourceTree = ""; }; + 92BC3F0D0BAEE55A000DAB7F /* debugwindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = debugwindow.cpp; sourceTree = ""; }; + 92BC3F0E0BAEE55A000DAB7F /* debugwindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = debugwindow.h; sourceTree = ""; }; + 92BC3F0F0BAEE55A000DAB7F /* equipmentwindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = equipmentwindow.cpp; sourceTree = ""; }; + 92BC3F100BAEE55A000DAB7F /* equipmentwindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = equipmentwindow.h; sourceTree = ""; }; + 92BC3F110BAEE55A000DAB7F /* focushandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = focushandler.cpp; sourceTree = ""; }; + 92BC3F120BAEE55A000DAB7F /* focushandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = focushandler.h; sourceTree = ""; }; + 92BC3F130BAEE55A000DAB7F /* gccontainer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gccontainer.cpp; sourceTree = ""; }; + 92BC3F140BAEE55A000DAB7F /* gccontainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gccontainer.h; sourceTree = ""; }; + 92BC3F150BAEE55A000DAB7F /* gui.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gui.cpp; sourceTree = ""; }; + 92BC3F160BAEE55A000DAB7F /* gui.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gui.h; sourceTree = ""; }; + 92BC3F170BAEE55A000DAB7F /* hbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = hbox.cpp; sourceTree = ""; }; + 92BC3F180BAEE55A000DAB7F /* hbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = hbox.h; sourceTree = ""; }; + 92BC3F190BAEE55A000DAB7F /* help.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = help.cpp; sourceTree = ""; }; + 92BC3F1A0BAEE55A000DAB7F /* help.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = help.h; sourceTree = ""; }; + 92BC3F1B0BAEE55A000DAB7F /* inttextbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = inttextbox.cpp; sourceTree = ""; }; + 92BC3F1C0BAEE55A000DAB7F /* inttextbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = inttextbox.h; sourceTree = ""; }; + 92BC3F1D0BAEE55A000DAB7F /* inventorywindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = inventorywindow.cpp; sourceTree = ""; }; + 92BC3F1E0BAEE55A000DAB7F /* inventorywindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = inventorywindow.h; sourceTree = ""; }; + 92BC3F1F0BAEE55A000DAB7F /* item_amount.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = item_amount.cpp; sourceTree = ""; }; + 92BC3F200BAEE55A000DAB7F /* item_amount.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = item_amount.h; sourceTree = ""; }; + 92BC3F210BAEE55A000DAB7F /* itemcontainer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = itemcontainer.cpp; sourceTree = ""; }; + 92BC3F220BAEE55A000DAB7F /* itemcontainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = itemcontainer.h; sourceTree = ""; }; + 92BC3F230BAEE55A000DAB7F /* linkhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = linkhandler.h; sourceTree = ""; }; + 92BC3F240BAEE55A000DAB7F /* listbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = listbox.cpp; sourceTree = ""; }; + 92BC3F250BAEE55A000DAB7F /* listbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = listbox.h; sourceTree = ""; }; + 92BC3F260BAEE55A000DAB7F /* login.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = login.cpp; sourceTree = ""; }; + 92BC3F270BAEE55A000DAB7F /* login.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = login.h; sourceTree = ""; }; + 92BC3F280BAEE55A000DAB7F /* menuwindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = menuwindow.cpp; sourceTree = ""; }; + 92BC3F290BAEE55A000DAB7F /* menuwindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = menuwindow.h; sourceTree = ""; }; + 92BC3F2A0BAEE55A000DAB7F /* minimap.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = minimap.cpp; sourceTree = ""; }; + 92BC3F2B0BAEE55A000DAB7F /* minimap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = minimap.h; sourceTree = ""; }; + 92BC3F2C0BAEE55A000DAB7F /* ministatus.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ministatus.cpp; sourceTree = ""; }; + 92BC3F2D0BAEE55A000DAB7F /* ministatus.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ministatus.h; sourceTree = ""; }; + 92BC3F2E0BAEE55A000DAB7F /* newskill.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = newskill.cpp; sourceTree = ""; }; + 92BC3F2F0BAEE55A000DAB7F /* newskill.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = newskill.h; sourceTree = ""; }; + 92BC3F300BAEE55A000DAB7F /* npc_text.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = npc_text.cpp; sourceTree = ""; }; + 92BC3F310BAEE55A000DAB7F /* npc_text.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = npc_text.h; sourceTree = ""; }; + 92BC3F320BAEE55A000DAB7F /* npclistdialog.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = npclistdialog.cpp; sourceTree = ""; }; + 92BC3F330BAEE55A000DAB7F /* npclistdialog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = npclistdialog.h; sourceTree = ""; }; + 92BC3F340BAEE55A000DAB7F /* ok_dialog.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ok_dialog.cpp; sourceTree = ""; }; + 92BC3F350BAEE55A000DAB7F /* ok_dialog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ok_dialog.h; sourceTree = ""; }; + 92BC3F360BAEE55A000DAB7F /* passwordfield.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = passwordfield.cpp; sourceTree = ""; }; + 92BC3F370BAEE55A000DAB7F /* passwordfield.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = passwordfield.h; sourceTree = ""; }; + 92BC3F380BAEE55A000DAB7F /* playerbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = playerbox.cpp; sourceTree = ""; }; + 92BC3F390BAEE55A000DAB7F /* playerbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = playerbox.h; sourceTree = ""; }; + 92BC3F3A0BAEE55A000DAB7F /* popupmenu.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = popupmenu.cpp; sourceTree = ""; }; + 92BC3F3B0BAEE55A000DAB7F /* popupmenu.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = popupmenu.h; sourceTree = ""; }; + 92BC3F3C0BAEE55A000DAB7F /* progressbar.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = progressbar.cpp; sourceTree = ""; }; + 92BC3F3D0BAEE55A000DAB7F /* progressbar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = progressbar.h; sourceTree = ""; }; + 92BC3F3E0BAEE55A000DAB7F /* radiobutton.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = radiobutton.cpp; sourceTree = ""; }; + 92BC3F3F0BAEE55A000DAB7F /* radiobutton.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = radiobutton.h; sourceTree = ""; }; + 92BC3F400BAEE55A000DAB7F /* register.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = register.cpp; sourceTree = ""; }; + 92BC3F410BAEE55A000DAB7F /* register.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = register.h; sourceTree = ""; }; + 92BC3F420BAEE55A000DAB7F /* scrollarea.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = scrollarea.cpp; sourceTree = ""; }; + 92BC3F430BAEE55A000DAB7F /* scrollarea.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = scrollarea.h; sourceTree = ""; }; + 92BC3F450BAEE55A000DAB7F /* sell.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = sell.cpp; sourceTree = ""; }; + 92BC3F460BAEE55A000DAB7F /* sell.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = sell.h; sourceTree = ""; }; + 92BC3F470BAEE55A000DAB7F /* setup.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = setup.cpp; sourceTree = ""; }; + 92BC3F480BAEE55A000DAB7F /* setup.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = setup.h; sourceTree = ""; }; + 92BC3F490BAEE55A000DAB7F /* setup_audio.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = setup_audio.cpp; sourceTree = ""; }; + 92BC3F4A0BAEE55A000DAB7F /* setup_audio.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = setup_audio.h; sourceTree = ""; }; + 92BC3F4B0BAEE55A000DAB7F /* setup_joystick.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = setup_joystick.cpp; sourceTree = ""; }; + 92BC3F4C0BAEE55A000DAB7F /* setup_joystick.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = setup_joystick.h; sourceTree = ""; }; + 92BC3F4D0BAEE55A000DAB7F /* setup_video.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = setup_video.cpp; sourceTree = ""; }; + 92BC3F4E0BAEE55A000DAB7F /* setup_video.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = setup_video.h; sourceTree = ""; }; + 92BC3F4F0BAEE55A000DAB7F /* setuptab.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = setuptab.h; sourceTree = ""; }; + 92BC3F500BAEE55A000DAB7F /* shop.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = shop.cpp; sourceTree = ""; }; + 92BC3F510BAEE55A000DAB7F /* shop.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = shop.h; sourceTree = ""; }; + 92BC3F520BAEE55A000DAB7F /* shoplistbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = shoplistbox.cpp; sourceTree = ""; }; + 92BC3F530BAEE55A000DAB7F /* shoplistbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = shoplistbox.h; sourceTree = ""; }; + 92BC3F540BAEE55A000DAB7F /* skill.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = skill.cpp; sourceTree = ""; }; + 92BC3F550BAEE55A000DAB7F /* skill.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = skill.h; sourceTree = ""; }; + 92BC3F560BAEE55A000DAB7F /* slider.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = slider.cpp; sourceTree = ""; }; + 92BC3F570BAEE55A000DAB7F /* slider.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = slider.h; sourceTree = ""; }; + 92BC3F580BAEE55A000DAB7F /* status.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = status.cpp; sourceTree = ""; }; + 92BC3F590BAEE55B000DAB7F /* status.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = status.h; sourceTree = ""; }; + 92BC3F5A0BAEE55B000DAB7F /* tabbedcontainer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = tabbedcontainer.cpp; sourceTree = ""; }; + 92BC3F5B0BAEE55B000DAB7F /* tabbedcontainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = tabbedcontainer.h; sourceTree = ""; }; + 92BC3F5C0BAEE55B000DAB7F /* textbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = textbox.cpp; sourceTree = ""; }; + 92BC3F5D0BAEE55B000DAB7F /* textbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = textbox.h; sourceTree = ""; }; + 92BC3F5E0BAEE55B000DAB7F /* textfield.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = textfield.cpp; sourceTree = ""; }; + 92BC3F5F0BAEE55B000DAB7F /* textfield.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = textfield.h; sourceTree = ""; }; + 92BC3F600BAEE55B000DAB7F /* trade.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = trade.cpp; sourceTree = ""; }; + 92BC3F610BAEE55B000DAB7F /* trade.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = trade.h; sourceTree = ""; }; + 92BC3F620BAEE55B000DAB7F /* updatewindow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = updatewindow.cpp; sourceTree = ""; }; + 92BC3F630BAEE55B000DAB7F /* updatewindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = updatewindow.h; sourceTree = ""; }; + 92BC3F640BAEE55B000DAB7F /* vbox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vbox.cpp; sourceTree = ""; }; + 92BC3F650BAEE55B000DAB7F /* vbox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vbox.h; sourceTree = ""; }; + 92BC3F660BAEE55B000DAB7F /* viewport.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = viewport.cpp; sourceTree = ""; }; + 92BC3F670BAEE55B000DAB7F /* viewport.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = viewport.h; sourceTree = ""; }; + 92BC3F680BAEE55B000DAB7F /* window.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = window.cpp; sourceTree = ""; }; + 92BC3F690BAEE55B000DAB7F /* window.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = window.h; sourceTree = ""; }; + 92BC3F6A0BAEE55B000DAB7F /* windowcontainer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = windowcontainer.cpp; sourceTree = ""; }; + 92BC3F6B0BAEE55B000DAB7F /* windowcontainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = windowcontainer.h; sourceTree = ""; }; + 92BC3F6C0BAEE55B000DAB7F /* guichanfwd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = guichanfwd.h; path = src/guichanfwd.h; sourceTree = ""; }; + 92BC3F6D0BAEE55B000DAB7F /* inventory.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = inventory.cpp; path = src/inventory.cpp; sourceTree = ""; }; + 92BC3F6E0BAEE55B000DAB7F /* inventory.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = inventory.h; path = src/inventory.h; sourceTree = ""; }; + 92BC3F6F0BAEE55B000DAB7F /* item.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = item.cpp; path = src/item.cpp; sourceTree = ""; }; + 92BC3F700BAEE55B000DAB7F /* item.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = item.h; path = src/item.h; sourceTree = ""; }; + 92BC3F710BAEE55B000DAB7F /* joystick.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = joystick.cpp; path = src/joystick.cpp; sourceTree = ""; }; + 92BC3F720BAEE55B000DAB7F /* joystick.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = joystick.h; path = src/joystick.h; sourceTree = ""; }; + 92BC3F730BAEE55B000DAB7F /* localplayer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = localplayer.cpp; path = src/localplayer.cpp; sourceTree = ""; }; + 92BC3F740BAEE55B000DAB7F /* localplayer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = localplayer.h; path = src/localplayer.h; sourceTree = ""; }; + 92BC3F750BAEE55B000DAB7F /* lockedarray.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = lockedarray.h; path = src/lockedarray.h; sourceTree = ""; }; + 92BC3F760BAEE55B000DAB7F /* log.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = log.cpp; path = src/log.cpp; sourceTree = ""; }; + 92BC3F770BAEE55B000DAB7F /* log.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = log.h; path = src/log.h; sourceTree = ""; }; + 92BC3F780BAEE55B000DAB7F /* logindata.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = logindata.h; path = src/logindata.h; sourceTree = ""; }; + 92BC3F790BAEE55B000DAB7F /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = ""; }; + 92BC3F7A0BAEE55B000DAB7F /* main.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = main.h; path = src/main.h; sourceTree = ""; }; + 92BC3F7C0BAEE55B000DAB7F /* map.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = map.cpp; path = src/map.cpp; sourceTree = ""; }; + 92BC3F7D0BAEE55B000DAB7F /* map.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = map.h; path = src/map.h; sourceTree = ""; }; + 92BC3F7E0BAEE55B000DAB7F /* monster.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = monster.cpp; path = src/monster.cpp; sourceTree = ""; }; + 92BC3F7F0BAEE55B000DAB7F /* monster.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = monster.h; path = src/monster.h; sourceTree = ""; }; + 92BC3F810BAEE55B000DAB7F /* beinghandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = beinghandler.cpp; sourceTree = ""; }; + 92BC3F820BAEE55B000DAB7F /* beinghandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = beinghandler.h; sourceTree = ""; }; + 92BC3F830BAEE55B000DAB7F /* buysellhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = buysellhandler.cpp; sourceTree = ""; }; + 92BC3F840BAEE55B000DAB7F /* buysellhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = buysellhandler.h; sourceTree = ""; }; + 92BC3F850BAEE55B000DAB7F /* charserverhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = charserverhandler.cpp; sourceTree = ""; }; + 92BC3F860BAEE55B000DAB7F /* charserverhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = charserverhandler.h; sourceTree = ""; }; + 92BC3F870BAEE55B000DAB7F /* chathandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = chathandler.cpp; sourceTree = ""; }; + 92BC3F880BAEE55B000DAB7F /* chathandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = chathandler.h; sourceTree = ""; }; + 92BC3F890BAEE55B000DAB7F /* equipmenthandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = equipmenthandler.cpp; sourceTree = ""; }; + 92BC3F8A0BAEE55B000DAB7F /* equipmenthandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = equipmenthandler.h; sourceTree = ""; }; + 92BC3F8B0BAEE55B000DAB7F /* inventoryhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = inventoryhandler.cpp; sourceTree = ""; }; + 92BC3F8C0BAEE55B000DAB7F /* inventoryhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = inventoryhandler.h; sourceTree = ""; }; + 92BC3F8D0BAEE55B000DAB7F /* itemhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = itemhandler.cpp; sourceTree = ""; }; + 92BC3F8E0BAEE55B000DAB7F /* itemhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = itemhandler.h; sourceTree = ""; }; + 92BC3F8F0BAEE55B000DAB7F /* loginhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = loginhandler.cpp; sourceTree = ""; }; + 92BC3F900BAEE55B000DAB7F /* loginhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = loginhandler.h; sourceTree = ""; }; + 92BC3F910BAEE55B000DAB7F /* maploginhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = maploginhandler.cpp; sourceTree = ""; }; + 92BC3F920BAEE55B000DAB7F /* maploginhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = maploginhandler.h; sourceTree = ""; }; + 92BC3F930BAEE55B000DAB7F /* messagehandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = messagehandler.cpp; sourceTree = ""; }; + 92BC3F940BAEE55B000DAB7F /* messagehandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = messagehandler.h; sourceTree = ""; }; + 92BC3F950BAEE55B000DAB7F /* messagein.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = messagein.cpp; sourceTree = ""; }; + 92BC3F960BAEE55B000DAB7F /* messagein.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = messagein.h; sourceTree = ""; }; + 92BC3F970BAEE55B000DAB7F /* messageout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = messageout.cpp; sourceTree = ""; }; + 92BC3F980BAEE55B000DAB7F /* messageout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = messageout.h; sourceTree = ""; }; + 92BC3F990BAEE55B000DAB7F /* network.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = network.cpp; sourceTree = ""; }; + 92BC3F9A0BAEE55B000DAB7F /* network.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = network.h; sourceTree = ""; }; + 92BC3F9B0BAEE55B000DAB7F /* npchandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = npchandler.cpp; sourceTree = ""; }; + 92BC3F9C0BAEE55B000DAB7F /* npchandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = npchandler.h; sourceTree = ""; }; + 92BC3F9D0BAEE55B000DAB7F /* playerhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = playerhandler.cpp; sourceTree = ""; }; + 92BC3F9E0BAEE55B000DAB7F /* playerhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = playerhandler.h; sourceTree = ""; }; + 92BC3F9F0BAEE55B000DAB7F /* protocol.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = protocol.cpp; sourceTree = ""; }; + 92BC3FA00BAEE55B000DAB7F /* protocol.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = protocol.h; sourceTree = ""; }; + 92BC3FA10BAEE55B000DAB7F /* skillhandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = skillhandler.cpp; sourceTree = ""; }; + 92BC3FA20BAEE55B000DAB7F /* skillhandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = skillhandler.h; sourceTree = ""; }; + 92BC3FA30BAEE55B000DAB7F /* tradehandler.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = tradehandler.cpp; sourceTree = ""; }; + 92BC3FA40BAEE55B000DAB7F /* tradehandler.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = tradehandler.h; sourceTree = ""; }; + 92BC3FA50BAEE55B000DAB7F /* npc.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = npc.cpp; path = src/npc.cpp; sourceTree = ""; }; + 92BC3FA60BAEE55B000DAB7F /* npc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = npc.h; path = src/npc.h; sourceTree = ""; }; + 92BC3FA70BAEE55B000DAB7F /* openglgraphics.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = openglgraphics.cpp; path = src/openglgraphics.cpp; sourceTree = ""; }; + 92BC3FA80BAEE55B000DAB7F /* openglgraphics.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = openglgraphics.h; path = src/openglgraphics.h; sourceTree = ""; }; + 92BC3FAB0BAEE55B000DAB7F /* physfs.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = physfs.c; sourceTree = ""; }; + 92BC3FAC0BAEE55B000DAB7F /* physfs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = physfs.h; sourceTree = ""; }; + 92BC3FAD0BAEE55B000DAB7F /* physfs_byteorder.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = physfs_byteorder.c; sourceTree = ""; }; + 92BC3FAE0BAEE55B000DAB7F /* physfs_internal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = physfs_internal.h; sourceTree = ""; }; + 92BC3FB50BAEE55B000DAB7F /* posix.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = posix.c; sourceTree = ""; }; + 92BC3FB70BAEE55B000DAB7F /* unix.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = unix.c; sourceTree = ""; }; + 92BC3FBA0BAEE55B000DAB7F /* player.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = player.cpp; path = src/player.cpp; sourceTree = ""; }; + 92BC3FBB0BAEE55B000DAB7F /* player.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = player.h; path = src/player.h; sourceTree = ""; }; + 92BC3FBC0BAEE55B000DAB7F /* properties.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = properties.h; path = src/properties.h; sourceTree = ""; }; + 92BC3FBE0BAEE55B000DAB7F /* action.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = action.cpp; sourceTree = ""; }; + 92BC3FBF0BAEE55B000DAB7F /* action.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = action.h; sourceTree = ""; }; + 92BC3FC00BAEE55B000DAB7F /* ambientoverlay.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ambientoverlay.cpp; sourceTree = ""; }; + 92BC3FC10BAEE55B000DAB7F /* ambientoverlay.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ambientoverlay.h; sourceTree = ""; }; + 92BC3FC20BAEE55B000DAB7F /* animation.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = animation.cpp; sourceTree = ""; }; + 92BC3FC30BAEE55B000DAB7F /* animation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = animation.h; sourceTree = ""; }; + 92BC3FC40BAEE55B000DAB7F /* buddylist.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = buddylist.cpp; sourceTree = ""; }; + 92BC3FC50BAEE55B000DAB7F /* buddylist.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = buddylist.h; sourceTree = ""; }; + 92BC3FC90BAEE55B000DAB7F /* image.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = image.cpp; sourceTree = ""; }; + 92BC3FCA0BAEE55B000DAB7F /* image.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = image.h; sourceTree = ""; }; + 92BC3FCB0BAEE55B000DAB7F /* imagewriter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = imagewriter.cpp; sourceTree = ""; }; + 92BC3FCC0BAEE55B000DAB7F /* imagewriter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = imagewriter.h; sourceTree = ""; }; + 92BC3FCD0BAEE55B000DAB7F /* itemdb.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = itemdb.cpp; sourceTree = ""; }; + 92BC3FCE0BAEE55B000DAB7F /* itemdb.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = itemdb.h; sourceTree = ""; }; + 92BC3FCF0BAEE55B000DAB7F /* iteminfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = iteminfo.cpp; sourceTree = ""; }; + 92BC3FD00BAEE55B000DAB7F /* iteminfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = iteminfo.h; sourceTree = ""; }; + 92BC3FD10BAEE55B000DAB7F /* mapreader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = mapreader.cpp; sourceTree = ""; }; + 92BC3FD20BAEE55B000DAB7F /* mapreader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = mapreader.h; sourceTree = ""; }; + 92BC3FD30BAEE55B000DAB7F /* monsterdb.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = monsterdb.cpp; sourceTree = ""; }; + 92BC3FD40BAEE55B000DAB7F /* monsterdb.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = monsterdb.h; sourceTree = ""; }; + 92BC3FD50BAEE55B000DAB7F /* monsterinfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = monsterinfo.cpp; sourceTree = ""; }; + 92BC3FD60BAEE55B000DAB7F /* monsterinfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = monsterinfo.h; sourceTree = ""; }; + 92BC3FD70BAEE55B000DAB7F /* music.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = music.cpp; sourceTree = ""; }; + 92BC3FD80BAEE55B000DAB7F /* music.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = music.h; sourceTree = ""; }; + 92BC3FDB0BAEE55B000DAB7F /* resource.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = resource.cpp; sourceTree = ""; }; + 92BC3FDC0BAEE55B000DAB7F /* resource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = resource.h; sourceTree = ""; }; + 92BC3FDD0BAEE55B000DAB7F /* resourcemanager.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = resourcemanager.cpp; sourceTree = ""; }; + 92BC3FDE0BAEE55B000DAB7F /* resourcemanager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = resourcemanager.h; sourceTree = ""; }; + 92BC3FE10BAEE55B000DAB7F /* soundeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = soundeffect.cpp; sourceTree = ""; }; + 92BC3FE20BAEE55B000DAB7F /* soundeffect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = soundeffect.h; sourceTree = ""; }; + 92BC3FE30BAEE55B000DAB7F /* spritedef.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = spritedef.cpp; sourceTree = ""; }; + 92BC3FE40BAEE55B000DAB7F /* spritedef.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = spritedef.h; sourceTree = ""; }; + 92BC3FE70BAEE55B000DAB7F /* serverinfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = serverinfo.h; path = src/serverinfo.h; sourceTree = ""; }; + 92BC3FE80BAEE55B000DAB7F /* simpleanimation.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = simpleanimation.cpp; path = src/simpleanimation.cpp; sourceTree = ""; }; + 92BC3FE90BAEE55B000DAB7F /* simpleanimation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = simpleanimation.h; path = src/simpleanimation.h; sourceTree = ""; }; + 92BC3FEA0BAEE55B000DAB7F /* sound.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = sound.cpp; path = src/sound.cpp; sourceTree = ""; }; + 92BC3FEB0BAEE55B000DAB7F /* sound.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sound.h; path = src/sound.h; sourceTree = ""; }; + 92BC3FEC0BAEE55B000DAB7F /* sprite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sprite.h; path = src/sprite.h; sourceTree = ""; }; + 92BC3FED0BAEE55B000DAB7F /* tileset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = tileset.h; path = src/tileset.h; sourceTree = ""; }; + 92BC3FEF0BAEE55B000DAB7F /* base64.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = base64.cpp; sourceTree = ""; }; + 92BC3FF00BAEE55B000DAB7F /* base64.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = base64.h; sourceTree = ""; }; + 92BC3FF10BAEE55B000DAB7F /* dtor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = dtor.h; sourceTree = ""; }; + 92BC3FF20BAEE55B000DAB7F /* tostring.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = tostring.h; sourceTree = ""; }; + 92BC3FF40BAEE55B000DAB7F /* xml.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = xml.cpp; sourceTree = ""; }; + 92BC3FF50BAEE55B000DAB7F /* xml.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = xml.h; sourceTree = ""; }; + 92BC408E0BAEE818000DAB7F /* SDL_image.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_image.framework; path = /Library/Frameworks/SDL_image.framework; sourceTree = ""; }; + 92BC408F0BAEE818000DAB7F /* SDL_mixer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_mixer.framework; path = /Library/Frameworks/SDL_mixer.framework; sourceTree = ""; }; + 92BC40900BAEE818000DAB7F /* SDL_net.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_net.framework; path = /Library/Frameworks/SDL_net.framework; sourceTree = ""; }; + 92BC40910BAEE818000DAB7F /* SDL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL.framework; path = /Library/Frameworks/SDL.framework; sourceTree = ""; }; + 92BC40C60BAEEDAA000DAB7F /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; + 92BC40D80BAEEED3000DAB7F /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; + 92BC40E50BAEF54B000DAB7F /* SDLMain.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SDLMain.m; path = src/SDLMain.m; sourceTree = ""; }; + 92BC40E80BAEF57D000DAB7F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 92BC416E0BAF664C000DAB7F /* ChangeLog */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ChangeLog; sourceTree = ""; }; + 92FD19A10DDCD60C00D14E5D /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + 92FD19AE0DDCE51000D14E5D /* player_relations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = player_relations.cpp; path = src/player_relations.cpp; sourceTree = ""; }; + 92FD19AF0DDCE51000D14E5D /* player_relations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = player_relations.h; path = src/player_relations.h; sourceTree = ""; }; + 92FD19B30DDCE53400D14E5D /* setup_players.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = setup_players.cpp; sourceTree = ""; }; + 92FD19B40DDCE53400D14E5D /* setup_players.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = setup_players.h; sourceTree = ""; }; + 92FD19B50DDCE53400D14E5D /* table.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table.cpp; sourceTree = ""; }; + 92FD19B60DDCE53400D14E5D /* table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table.h; sourceTree = ""; }; + 92FD19B70DDCE53400D14E5D /* table_model.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = table_model.cpp; sourceTree = ""; }; + 92FD19B80DDCE53400D14E5D /* table_model.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = table_model.h; sourceTree = ""; }; + 92FD19BD0DDCE56A00D14E5D /* dye.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dye.h; sourceTree = ""; }; + 92FD19BF0DDCE6F700D14E5D /* strprintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strprintf.cpp; sourceTree = ""; }; + 92FD19C00DDCE6F700D14E5D /* strprintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strprintf.h; sourceTree = ""; }; + 92FD19C60DDCEB8500D14E5D /* emotions.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = emotions.png; sourceTree = ""; }; +/* 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 = ""; + }; + 20286C29FDCF999611CA2CEA /* themanaworld */ = { + isa = PBXGroup; + children = ( + 5048396909E3304600765E4B /* Configuration Files */, + 20286C2AFDCF999611CA2CEA /* Sources */, + 20286C2CFDCF999611CA2CEA /* Resources */, + 20286C32FDCF999611CA2CEA /* External Frameworks and Libraries */, + 195DF8CFFE9D517E11CA2CBB /* Products */, + ); + name = themanaworld; + sourceTree = ""; + }; + 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 = ""; + }; + 20286C2CFDCF999611CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 92FD19A00DDCD60C00D14E5D /* InfoPlist.strings */, + 92A4CCFE0D1DA8E500CA28FB /* LICENSE.rtf */, + 924A42600C0874D00066885E /* Info.plist */, + 924A42590C0871EC0066885E /* The Mana World.icns */, + 924A3E590C085ED70066885E /* data */, + 92BC416E0BAF664C000DAB7F /* ChangeLog */, + 02345980000FD03B11CA0E72 /* main.nib */, + ); + name = Resources; + sourceTree = ""; + }; + 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 = ""; + }; + 5048396909E3304600765E4B /* Configuration Files */ = { + isa = PBXGroup; + children = ( + 92037A190ED2035A00D3712D /* SDLMain.h */, + 92BC40E50BAEF54B000DAB7F /* SDLMain.m */, + ); + name = "Configuration Files"; + sourceTree = ""; + }; + 924A3A0F0C07A60B0066885E /* widgets */ = { + isa = PBXGroup; + children = ( + 924A3A100C07A60B0066885E /* resizegrip.cpp */, + 924A3A110C07A60B0066885E /* resizegrip.h */, + ); + path = widgets; + sourceTree = ""; + }; + 924A3E590C085ED70066885E /* data */ = { + isa = PBXGroup; + children = ( + 924A3E5C0C085ED70066885E /* graphics */, + 924A40090C085ED80066885E /* help */, + 924A40140C085ED80066885E /* icons */, + 924A401C0C085ED80066885E /* items.xsd */, + ); + path = data; + sourceTree = ""; + }; + 924A3E5C0C085ED70066885E /* graphics */ = { + isa = PBXGroup; + children = ( + 924A3E5E0C085ED70066885E /* gui */, + 924A3E900C085ED70066885E /* images */, + ); + path = graphics; + sourceTree = ""; + }; + 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 = ""; + }; + 924A3E900C085ED70066885E /* images */ = { + isa = PBXGroup; + children = ( + 924A3E990C085ED70066885E /* error.png */, + 924A3E9A0C085ED70066885E /* login_wallpaper.png */, + ); + path = images; + sourceTree = ""; + }; + 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 = ""; + }; + 924A40140C085ED80066885E /* icons */ = { + isa = PBXGroup; + children = ( + 92024DDD0CF1BFC8006B55CB /* The Mana World.icns */, + 924A40180C085ED80066885E /* tmw.ico */, + 924A40190C085ED80066885E /* tmw.png */, + 924A401A0C085ED80066885E /* tmw.xpm */, + ); + path = icons; + sourceTree = ""; + }; + 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 = ""; + }; + 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 = ""; + }; + 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 = ""; + }; + 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 = ""; + }; + 92BC3FAF0BAEE55B000DAB7F /* platform */ = { + isa = PBXGroup; + children = ( + 92A4CCF20D1DA5C600CA28FB /* macosx.c */, + 92BC3FB50BAEE55B000DAB7F /* posix.c */, + 92BC3FB70BAEE55B000DAB7F /* unix.c */, + ); + path = platform; + sourceTree = ""; + }; + 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 = ""; + }; + 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 = ""; + }; +/* 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 */, + 920D9AE20DE09DCA003D7E61 /* Copy plist */, + ); + 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 = ( + 924A3E580C085E600066885E /* main.nib in Resources */, + 924A425A0C0871EC0066885E /* The Mana World.icns in Resources */, + 92A4CCFF0D1DA8E500CA28FB /* LICENSE.rtf in Resources */, + 92FD19A20DDCD60C00D14E5D /* InfoPlist.strings 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 PBXVariantGroup section */ + 02345980000FD03B11CA0E72 /* main.nib */ = { + isa = PBXVariantGroup; + children = ( + 1870340FFE93FCAF11CA0CD7 /* English */, + ); + name = main.nib; + sourceTree = ""; + }; + 92FD19A00DDCD60C00D14E5D /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 92FD19A10DDCD60C00D14E5D /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C0E91AC608A95435008D54AB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + 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_FOR_TARGET_1 = "\"$(SRCROOT)\""; + GCC_DEBUGGING_SYMBOLS = full; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + PHYSFS_SUPPORTS_ZIP, + USE_OPENGL, + __PHYSFS_CARBONIZED__, + ); + GCC_VERSION_ppc = 3.3; + HEADER_SEARCH_PATHS = ( + /Library/Frameworks/SDL_net.framework/Headers, + /Library/Frameworks/SDL_image.framework/Headers, + /Library/Frameworks/SDL_mixer.framework/Headers, + /Library/Frameworks/guichan.framework/Headers, + /Library/Frameworks/libpng.framework/Headers, + /usr/include/libxml2, + /Library/Frameworks/SDL.framework/Headers, + ); + LIBRARY_SEARCH_PATHS = /usr/lib; + MACOSX_DEPLOYMENT_TARGET = ""; + OTHER_LDFLAGS = ( + "-lxml2", + "-lcurl", + ); + PREBINDING = NO; + PRODUCT_NAME = "The Mana World"; + USER_HEADER_SEARCH_PATHS = src; + ZERO_LINK = NO; + }; + 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, + ); + 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 = PHYSFS_SUPPORTS_ZIP; + 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 */; +} -- cgit v1.2.3-60-g2f50 From 07867f04c9fe8f0a1d089d6743b3ef292b9c03e5 Mon Sep 17 00:00:00 2001 From: David Athay Date: Thu, 20 Nov 2008 01:17:11 +0000 Subject: Updated Project files --- English.lproj/main.nib/classes.nib | 12 +- English.lproj/main.nib/info.nib | 18 +- English.lproj/main.nib/objects.xib | 293 ++++++-------------------------- Info.plist | 6 +- themanaworld.xcodeproj/garfield.mode1v3 | 93 ++++++---- themanaworld.xcodeproj/garfield.pbxuser | 176 +++++++++++++++++-- themanaworld.xcodeproj/project.pbxproj | 56 ++---- 7 files changed, 309 insertions(+), 345 deletions(-) diff --git a/English.lproj/main.nib/classes.nib b/English.lproj/main.nib/classes.nib index ea58db11..c4b887e7 100644 --- a/English.lproj/main.nib/classes.nib +++ b/English.lproj/main.nib/classes.nib @@ -1,4 +1,8 @@ -{ -IBClasses = (); -IBVersion = 1; -} + + + + + IBVersion + 1 + + diff --git a/English.lproj/main.nib/info.nib b/English.lproj/main.nib/info.nib index dfd1f0e8..0411a4a5 100644 --- a/English.lproj/main.nib/info.nib +++ b/English.lproj/main.nib/info.nib @@ -1,25 +1,19 @@ - + - IBDocumentLocation - 117 12 356 240 0 0 1920 1178 - IBEditorPositions - - 29 - 110 302 204 44 0 0 1920 1178 - IBFramework Version - 431.0 + 670 + IBLastKnownRelativeProjectPath + ../themanaworld.xcodeproj IBOldestOS - 3 + 5 IBOpenObjects 29 - 166 IBSystem Version - 8A383 + 9F33 targetFramework IBCarbonFramework diff --git a/English.lproj/main.nib/objects.xib b/English.lproj/main.nib/objects.xib index d1922ce1..6d0c83db 100644 --- a/English.lproj/main.nib/objects.xib +++ b/English.lproj/main.nib/objects.xib @@ -1,272 +1,77 @@ - IBCarbonFramework - NSApplication - - - main - - - themanaworld - - themanaworld - - - About themanaworld - 0 - abou - - - _NSAppleMenu - - - - File - - File - - - New - n - new - - - Open… - o - open - - - TRUE - - - Close - w - clos - - - Save - s - save - - - Save As… - S - svas - - - Revert - r - rvrt - - - TRUE - - - Page Setup… - P - page - - - Print… - p - prnt - - - - - - Edit - - Edit - - - Undo - z - undo - - - Redo - Z - redo - - - TRUE - - - Cut - x - cut - - - Copy - c - copy - - - Paste - v - past - - - Delete - clea - - - Select All - a - sall - - - TRUE - - - Special Characters… - chrp - - - - - - Window - - Window - - - TRUE - Minimize - m - mini - - - TRUE - Minimize All - m - 1572864 - mina - - - Zoom - zoom - - - TRUE - - - TRUE - Bring All to Front - bfrt - - - TRUE - Arrange in Front - 1572864 - frnt - - - _NSWindowsMenu - - - - _NSMainMenu + + + Quit + q + TRUE + quit - - - - - - - - - - - - - - - - - - - - - - - 204 300 564 780 - Window - - 0 0 360 480 - 0 0 480 360 - FALSE TRUE TRUE FALSE + Window + + 0 0 480 360 + 0 0 360 480 + + 204 300 564 780 + 0 0 768 1024 + + + themanaworld + _NSAppleMenu + + + About themanaworld + 0 + abou + + + TRUE + TRUE + TRUE + + + + + + + main + _NSMainMenu + + + themanaworld + + + - - - - - - - - - - - - + - + + - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - Files Owner + File's Owner MainWindow MenuBar - 200 + IBCarbonFramework + 231 diff --git a/Info.plist b/Info.plist index 76f8dc76..8699a8ae 100644 --- a/Info.plist +++ b/Info.plist @@ -1,5 +1,5 @@ - + CFBundleDevelopmentRegion @@ -18,8 +18,12 @@ tmw. CFBundleVersion 1.0 + NSHumanReadableCopyright + Copyright 2008 The Mana World Development Team NSMainNibFile main + NSPrincipalClass + NSApplication NSPrincipleClass NSApplication diff --git a/themanaworld.xcodeproj/garfield.mode1v3 b/themanaworld.xcodeproj/garfield.mode1v3 index fc9662d9..1b941b63 100644 --- a/themanaworld.xcodeproj/garfield.mode1v3 +++ b/themanaworld.xcodeproj/garfield.mode1v3 @@ -229,8 +229,6 @@ Layout - BecomeActive - ContentConfiguration PBXBottomSmartGroupGIDs @@ -267,9 +265,19 @@ PBXSmartGroupTreeModuleOutlineStateExpansionKey 20286C29FDCF999611CA2CEA + 5048396909E3304600765E4B + 20286C2CFDCF999611CA2CEA + 1C37FBAC04509CD000000102 + 927F62010ED4EA4500D919E6 PBXSmartGroupTreeModuleOutlineStateSelectionKey - + + + 16 + 15 + 14 + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey {{0, 0}, {186, 520}} @@ -290,7 +298,7 @@ 186 RubberWindowFrame - 670 364 780 579 0 0 1680 1028 + 670 363 780 579 0 0 1680 1028 Module PBXSmartGroupTreeModule @@ -306,7 +314,7 @@ PBXProjectModuleGUID 1CE0B20306471E060097A5F4 PBXProjectModuleLabel - physfs.c + Info.plist PBXSplitModuleInNavigatorKey Split0 @@ -314,7 +322,24 @@ PBXProjectModuleGUID 1CE0B20406471E060097A5F4 PBXProjectModuleLabel - physfs.c + Info.plist + _historyCapacity + 0 + bookmark + 927F623A0ED4EBEB00D919E6 + history + + 92B1EBDD0ED4E43D009AF197 + 92B1EBDE0ED4E43D009AF197 + 92B1EBF30ED4E5C5009AF197 + 92B1EC470ED4EA36009AF197 + + prevStack + + 92B1EBE00ED4E43D009AF197 + 92B1EBE10ED4E43D009AF197 + 92B1EBF50ED4E5C5009AF197 + SplitCount 1 @@ -325,14 +350,14 @@ GeometryConfiguration Frame - {{0, 0}, {572, 160}} + {{0, 0}, {572, 403}} RubberWindowFrame - 670 364 780 579 0 0 1680 1028 + 670 363 780 579 0 0 1680 1028 Module PBXNavigatorGroup Proportion - 160pt + 403pt ContentConfiguration @@ -345,14 +370,14 @@ GeometryConfiguration Frame - {{0, 165}, {572, 373}} + {{0, 408}, {572, 130}} RubberWindowFrame - 670 364 780 579 0 0 1680 1028 + 670 363 780 579 0 0 1680 1028 Module XCDetailModule Proportion - 373pt + 130pt Proportion @@ -371,9 +396,9 @@ TableOfContents - 920378B80ED200E400D3712D + 927F621A0ED4EA6A00D919E6 1CE0B1FE06471DED0097A5F4 - 920378B90ED200E400D3712D + 927F621B0ED4EA6A00D919E6 1CE0B20306471E060097A5F4 1CE0B20506471E060097A5F4 @@ -505,13 +530,13 @@ 5 WindowOrderList + 92A4CC8A0D1C5F1E00CA28FB 1C78EAAD065D492600B07095 1CD10A99069EF8BA00B06720 - 92A4CC8A0D1C5F1E00CA28FB /Users/garfield/programming/tmwclient/themanaworld.xcodeproj WindowString - 670 364 780 579 0 0 1680 1028 + 670 363 780 579 0 0 1680 1028 WindowToolsV3 @@ -539,22 +564,20 @@ GeometryConfiguration Frame - {{0, 0}, {553, 0}} + {{0, 0}, {553, 151}} RubberWindowFrame 490 365 553 548 0 0 1680 1028 Module PBXNavigatorGroup Proportion - 0pt + 151pt - BecomeActive - ContentConfiguration PBXBuildLogShowsTranscriptDefaultKey - {{0, 325}, {553, 177}} + {{0, 166}, {553, 185}} PBXProjectModuleGUID XCMainBuildResultsModuleGUID PBXProjectModuleLabel @@ -567,14 +590,14 @@ GeometryConfiguration Frame - {{0, 5}, {553, 502}} + {{0, 156}, {553, 351}} RubberWindowFrame 490 365 553 548 0 0 1680 1028 Module PBXBuildResultsModule Proportion - 502pt + 351pt Proportion @@ -592,7 +615,7 @@ TableOfContents 92A4CC8A0D1C5F1E00CA28FB - 92037A230ED20C3200D3712D + 927F623B0ED4EBEB00D919E6 1CD0528F0623707200166675 XCMainBuildResultsModuleGUID @@ -603,7 +626,7 @@ WindowToolGUID 92A4CC8A0D1C5F1E00CA28FB WindowToolIsVisible - + FirstTimeWindowDisplayed @@ -712,13 +735,13 @@ TableOfContents 1CD10A99069EF8BA00B06720 - 92037A240ED20C3200D3712D + 927F621D0ED4EA6A00D919E6 1C162984064C10D400B95A72 - 92037A250ED20C3200D3712D - 92037A260ED20C3200D3712D - 92037A270ED20C3200D3712D - 92037A280ED20C3200D3712D - 92037A290ED20C3200D3712D + 927F621E0ED4EA6A00D919E6 + 927F621F0ED4EA6A00D919E6 + 927F62200ED4EA6A00D919E6 + 927F62210ED4EA6A00D919E6 + 927F62220ED4EA6A00D919E6 ToolbarConfiguration xcode.toolbar.config.debugV3 @@ -727,7 +750,7 @@ WindowToolGUID 1CD10A99069EF8BA00B06720 WindowToolIsVisible - + FirstTimeWindowDisplayed @@ -837,6 +860,8 @@ Dock + BecomeActive + ContentConfiguration PBXProjectModuleGUID @@ -872,7 +897,7 @@ TableOfContents 1C78EAAD065D492600B07095 - 92037A2A0ED20C3200D3712D + 927F623C0ED4EBEB00D919E6 1C78EAAC065D492600B07095 ToolbarConfiguration @@ -882,7 +907,7 @@ WindowToolGUID 1C78EAAD065D492600B07095 WindowToolIsVisible - + Identifier diff --git a/themanaworld.xcodeproj/garfield.pbxuser b/themanaworld.xcodeproj/garfield.pbxuser index c2eef960..ada25426 100644 --- a/themanaworld.xcodeproj/garfield.pbxuser +++ b/themanaworld.xcodeproj/garfield.pbxuser @@ -134,8 +134,23 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 248643809; - PBXWorkspaceStateSaveDate = 248643809; + PBXPerProjectTemplateStateSaveDate = 248834629; + PBXWorkspaceStateSaveDate = 248834629; + }; + perUserProjectItems = { + 927F62190ED4EA6A00D919E6 /* PlistBookmark */ = 927F62190ED4EA6A00D919E6 /* PlistBookmark */; + 927F621C0ED4EA6A00D919E6 /* PlistBookmark */ = 927F621C0ED4EA6A00D919E6 /* PlistBookmark */; + 927F623A0ED4EBEB00D919E6 /* PlistBookmark */ = 927F623A0ED4EBEB00D919E6 /* PlistBookmark */; + 92B1EBDD0ED4E43D009AF197 = 92B1EBDD0ED4E43D009AF197 /* PBXTextBookmark */; + 92B1EBDE0ED4E43D009AF197 = 92B1EBDE0ED4E43D009AF197 /* PBXTextBookmark */; + 92B1EBE00ED4E43D009AF197 = 92B1EBE00ED4E43D009AF197 /* PBXTextBookmark */; + 92B1EBE10ED4E43D009AF197 = 92B1EBE10ED4E43D009AF197 /* PBXTextBookmark */; + 92B1EBE90ED4E547009AF197 = 92B1EBE90ED4E547009AF197 /* PBXBookmark */; + 92B1EBF30ED4E5C5009AF197 = 92B1EBF30ED4E5C5009AF197 /* PBXTextBookmark */; + 92B1EBF50ED4E5C5009AF197 = 92B1EBF50ED4E5C5009AF197 /* PBXTextBookmark */; + 92B1EC440ED4EA36009AF197 = 92B1EC440ED4EA36009AF197 /* PlistBookmark */; + 92B1EC470ED4EA36009AF197 = 92B1EC470ED4EA36009AF197 /* PlistBookmark */; + 92B1EC480ED4EA36009AF197 = 92B1EC480ED4EA36009AF197 /* PlistBookmark */; }; sourceControlManager = 92BC3EC80BAEE3C8000DAB7F /* Source Control */; userBuildSettings = { @@ -155,6 +170,13 @@ sepNavWindowFrame = "{{65, 113}, {627, 714}}"; }; }; + 92037A190ED2035A00D3712D /* SDLMain.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {511, 348}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 307}"; + }; + }; 924A42600C0874D00066885E /* Info.plist */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {674, 474}}"; @@ -171,6 +193,41 @@ sepNavVisRange = "{1251, 209}"; }; }; + 927F62190ED4EA6A00D919E6 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 924A42600C0874D00066885E /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + NSPrincipalClass, + ); + name = /Users/garfield/programming/tmwclient/Info.plist; + rLen = 0; + rLoc = 2147483647; + }; + 927F621C0ED4EA6A00D919E6 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 924A42600C0874D00066885E /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = /Users/garfield/programming/tmwclient/Info.plist; + rLen = 0; + rLoc = 2147483647; + }; + 927F623A0ED4EBEB00D919E6 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 924A42600C0874D00066885E /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + NSPrincipleClass, + ); + name = /Users/garfield/programming/tmwclient/Info.plist; + rLen = 0; + rLoc = 2147483647; + }; 92A4CCE70D1DA58D00CA28FB /* zip.c */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {568, 20230}}"; @@ -195,6 +252,104 @@ sepNavWindowFrame = "{{180, 8}, {627, 714}}"; }; }; + 92B1EBDD0ED4E43D009AF197 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 92BC40E50BAEF54B000DAB7F /* SDLMain.m */; + name = "SDLMain.m: 14"; + rLen = 0; + rLoc = 440; + rType = 0; + vrLen = 759; + vrLoc = 0; + }; + 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; + }; + 92B1EBE90ED4E547009AF197 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 924A42600C0874D00066885E /* Info.plist */; + }; + 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; + }; + 92B1EC440ED4EA36009AF197 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 924A42600C0874D00066885E /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = /Users/garfield/programming/tmwclient/Info.plist; + rLen = 0; + rLoc = 2147483647; + }; + 92B1EC470ED4EA36009AF197 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 924A42600C0874D00066885E /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + NSPrincipalClass, + ); + name = /Users/garfield/programming/tmwclient/Info.plist; + rLen = 0; + rLoc = 2147483647; + }; + 92B1EC480ED4EA36009AF197 /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 924A42600C0874D00066885E /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = /Users/garfield/programming/tmwclient/Info.plist; + rLen = 0; + rLoc = 2147483647; + }; 92BC3EBC0BAEE3BB000DAB7F /* themanaworld */ = { isa = PBXExecutable; activeArgIndices = ( @@ -280,8 +435,9 @@ }; 92BC3EEF0BAEE55A000DAB7F /* graphics.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {557, 2240}}"; - sepNavSelRange = "{0, 0}"; + sepNavIntBoundsRect = "{{0, 0}, {492, 2240}}"; + sepNavSelRange = "{879, 39}"; + sepNavVisRange = "{878, 92}"; sepNavVisRect = "{{0, 1767}, {557, 473}}"; sepNavWindowFrame = "{{192, 99}, {602, 602}}"; }; @@ -375,9 +531,9 @@ }; 92BC3F660BAEE55B000DAB7F /* viewport.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {718, 7028}}"; - sepNavSelRange = "{12276, 0}"; - sepNavVisRange = "{11882, 995}"; + sepNavIntBoundsRect = "{{0, 0}, {511, 6706}}"; + sepNavSelRange = "{7873, 63}"; + sepNavVisRange = "{7501, 780}"; sepNavVisRect = "{{0, 4144}, {732, 459}}"; sepNavWindowFrame = "{{61, 197}, {777, 588}}"; }; @@ -705,9 +861,9 @@ }; 92BC40E50BAEF54B000DAB7F /* SDLMain.m */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {806, 5278}}"; - sepNavSelRange = "{776, 0}"; - sepNavVisRange = "{0, 1283}"; + sepNavIntBoundsRect = "{{0, 0}, {726, 3906}}"; + sepNavSelRange = "{440, 0}"; + sepNavVisRange = "{7053, 643}"; sepNavWindowFrame = "{{583, 96}, {627, 714}}"; }; }; diff --git a/themanaworld.xcodeproj/project.pbxproj b/themanaworld.xcodeproj/project.pbxproj index 795e832d..7bd2a8e0 100644 --- a/themanaworld.xcodeproj/project.pbxproj +++ b/themanaworld.xcodeproj/project.pbxproj @@ -16,7 +16,6 @@ 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 */; }; - 920D9ADF0DE09DC0003D7E61 /* Info.plist in Copy plist */ = {isa = PBXBuildFile; fileRef = 924A42600C0874D00066885E /* Info.plist */; }; 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 */; }; @@ -27,7 +26,6 @@ 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 */; }; - 924A3E580C085E600066885E /* main.nib in Resources */ = {isa = PBXBuildFile; fileRef = 02345980000FD03B11CA0E72 /* main.nib */; }; 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 */; }; @@ -90,6 +88,7 @@ 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 */; }; + 927F62590ED4F1D100D919E6 /* main.nib in Resources */ = {isa = PBXBuildFile; fileRef = 927F62570ED4F1D100D919E6 /* main.nib */; }; 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 */; }; @@ -238,7 +237,6 @@ 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 */; }; - 92FD19A20DDCD60C00D14E5D /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 92FD19A00DDCD60C00D14E5D /* InfoPlist.strings */; }; 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 */; }; @@ -248,17 +246,6 @@ /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ - 920D9AE20DE09DCA003D7E61 /* Copy plist */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ..; - dstSubfolderSpec = 6; - files = ( - 920D9ADF0DE09DC0003D7E61 /* Info.plist in Copy plist */, - ); - name = "Copy plist"; - runOnlyForDeploymentPostprocessing = 0; - }; 924A3A520C085C190066885E /* Copy Data Files */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -379,7 +366,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 1870340FFE93FCAF11CA0CD7 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/main.nib; sourceTree = ""; }; 20286C33FDCF999611CA2CEA /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; 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 = ""; }; @@ -488,6 +474,7 @@ 926F9D420DB00AFC00AACD26 /* itemshortcutcontainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = itemshortcutcontainer.h; sourceTree = ""; }; 926F9D430DB00AFC00AACD26 /* itemshortcutwindow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = itemshortcutwindow.cpp; sourceTree = ""; }; 926F9D440DB00AFC00AACD26 /* itemshortcutwindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = itemshortcutwindow.h; sourceTree = ""; }; + 927F62580ED4F1D100D919E6 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/main.nib; sourceTree = ""; }; 9294DAA00C17E73200FCEDE9 /* libpng.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libpng.framework; path = /Library/Frameworks/libpng.framework; sourceTree = ""; }; 92A4CC9D0D1C622E00CA28FB /* dye.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dye.cpp; path = src/resources/dye.cpp; sourceTree = ""; }; 92A4CCE00D1DA58D00CA28FB /* dir.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dir.c; sourceTree = ""; }; @@ -768,7 +755,6 @@ 92BC40E50BAEF54B000DAB7F /* SDLMain.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = SDLMain.m; path = src/SDLMain.m; sourceTree = ""; }; 92BC40E80BAEF57D000DAB7F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 92BC416E0BAF664C000DAB7F /* ChangeLog */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = ChangeLog; sourceTree = ""; }; - 92FD19A10DDCD60C00D14E5D /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; 92FD19AE0DDCE51000D14E5D /* player_relations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = player_relations.cpp; path = src/player_relations.cpp; sourceTree = ""; }; 92FD19AF0DDCE51000D14E5D /* player_relations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = player_relations.h; path = src/player_relations.h; sourceTree = ""; }; 92FD19B30DDCE53400D14E5D /* setup_players.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = setup_players.cpp; sourceTree = ""; }; @@ -815,6 +801,7 @@ 20286C29FDCF999611CA2CEA /* themanaworld */ = { isa = PBXGroup; children = ( + 924A42600C0874D00066885E /* Info.plist */, 5048396909E3304600765E4B /* Configuration Files */, 20286C2AFDCF999611CA2CEA /* Sources */, 20286C2CFDCF999611CA2CEA /* Resources */, @@ -918,13 +905,11 @@ 20286C2CFDCF999611CA2CEA /* Resources */ = { isa = PBXGroup; children = ( - 92FD19A00DDCD60C00D14E5D /* InfoPlist.strings */, + 927F62570ED4F1D100D919E6 /* main.nib */, 92A4CCFE0D1DA8E500CA28FB /* LICENSE.rtf */, - 924A42600C0874D00066885E /* Info.plist */, 924A42590C0871EC0066885E /* The Mana World.icns */, 924A3E590C085ED70066885E /* data */, 92BC416E0BAF664C000DAB7F /* ChangeLog */, - 02345980000FD03B11CA0E72 /* main.nib */, ); name = Resources; sourceTree = ""; @@ -1385,7 +1370,6 @@ 924A40880C085FBD0066885E /* Copy Image Files */, 924A42000C0861C70066885E /* Copy Help Files */, 92EEA0090D2E20D100DDE300 /* Copy Frameworks */, - 920D9AE20DE09DCA003D7E61 /* Copy plist */, ); buildRules = ( ); @@ -1419,10 +1403,9 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 924A3E580C085E600066885E /* main.nib in Resources */, 924A425A0C0871EC0066885E /* The Mana World.icns in Resources */, 92A4CCFF0D1DA8E500CA28FB /* LICENSE.rtf in Resources */, - 92FD19A20DDCD60C00D14E5D /* InfoPlist.strings in Resources */, + 927F62590ED4F1D100D919E6 /* main.nib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1595,22 +1578,14 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ - 02345980000FD03B11CA0E72 /* main.nib */ = { + 927F62570ED4F1D100D919E6 /* main.nib */ = { isa = PBXVariantGroup; children = ( - 1870340FFE93FCAF11CA0CD7 /* English */, + 927F62580ED4F1D100D919E6 /* English */, ); name = main.nib; sourceTree = ""; }; - 92FD19A00DDCD60C00D14E5D /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 92FD19A10DDCD60C00D14E5D /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ @@ -1620,12 +1595,11 @@ COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 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_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 = ( @@ -1633,26 +1607,27 @@ USE_OPENGL, __PHYSFS_CARBONIZED__, ); - GCC_VERSION_ppc = 3.3; HEADER_SEARCH_PATHS = ( /Library/Frameworks/SDL_net.framework/Headers, /Library/Frameworks/SDL_image.framework/Headers, /Library/Frameworks/SDL_mixer.framework/Headers, - /Library/Frameworks/guichan.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 = ""; + 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; - ZERO_LINK = NO; }; name = Debug; }; @@ -1688,6 +1663,7 @@ /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; @@ -1728,7 +1704,7 @@ i386, ); DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_PREPROCESSOR_DEFINITIONS = PHYSFS_SUPPORTS_ZIP; + GCC_PREPROCESSOR_DEFINITIONS = ""; SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; SEPARATE_STRIP = YES; }; -- cgit v1.2.3-60-g2f50 From 0ee94c03f57b82de14c7c1fea182bee9c80ae765 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 20 Nov 2008 22:31:44 +0100 Subject: Removed a duplicated include --- src/engine.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/engine.cpp b/src/engine.cpp index b1458cb4..2edc6550 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -29,7 +29,6 @@ #include "flooritemmanager.h" #include "game.h" #include "graphics.h" -#include "main.h" #include "localplayer.h" #include "log.h" #include "main.h" -- cgit v1.2.3-60-g2f50 From 669bdf6a65a627a8253aa165c47967bf8eb87c34 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 21 Nov 2008 00:19:30 +0100 Subject: Deleted ChangeLog, it is no longer useful --- ChangeLog | 6262 ------------------------------------------------------------- 1 file changed, 6262 deletions(-) delete mode 100644 ChangeLog diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index 238c0cb1..00000000 --- a/ChangeLog +++ /dev/null @@ -1,6262 +0,0 @@ -2008-10-30 Philipp Sehmisch - - * src/gui/skil.cpp: fixed two broken include paths. - -2008-11-08 Bjørn Lindeijer - - * src/utils/strprintf.cpp: Fixed compile error with GCC 4.4 reported - by Martin Michlmayr. - -2008-11-06 Dennis Friis - - * src/game.cpp: Do not activate shortcuts if tradewindow is visible. - * src/equipment.cpp: Remove an extra include and arrange headers like - the trunk client for easier merging. - * src/localplayer.cpp, src/gui/equipmentwindow.cpp, - src/gui/equipmentwindow.h, src/equipment.h, - src/net/equipmenthandler.cpp, src/equipment.cpp: Have equipment tied - into player inventory instead of keeping its own list of pointers to - items. This ensures the ressource is up-to-date and avoids crashes on - stale item pointers. - -2008-11-04 Bjørn Lindeijer - - * src/gui/gui.cpp, data/graphics/gui/sansserif8.png: Applied more - changes by vargavind, adding the complete ISO-8859-15 character set to - the sans-serif font. - -2008-11-01 Fate - - * src/gui/skill.cpp (class SkillGuiTableModel): Report unmapped - skill names as `Mystery Skill' (rather than random garbage) - - * src/being.cpp (initializeHair): Read hair colours from external - `hair.xml' file (clientdata) - (initializeHair): Auto-detect number of hair colours - - * src/gui/skill.cpp (SkillDialog): Display skills using a table - and using an external `skills.xml' file - (SkillDialog::update): No longer segfault when skills beyond 199 - are reported - - * src/gui/table_model.cpp: Several fixes to tables and table - models to better handle `NULL' widgets and `NULL' models during - initialisation. - - * src/main.cpp (charLogin): Send client protocol version to - character server (this is ignored in vanilla eAthena). - - * src/net/network.h (TMW_CLIENT_PROTOCOL_VERSION): Record client - protocol version - - * src/net/beinghandler.cpp (BeingHandler::handleMessage): Properly - decode whether character is dead - (BeingHandler::handleMessage): for SMSG_PLAYER_MOVE et al., ignore - shoe and glove updates-- they are incorrect and not needed (we get - them correctly when the PC is spawned for the client and they are - updated as needed by other packages.) - -2008-10-31 Bjørn Lindeijer - - * src/gui/gui.cpp: Applied patch by vargavind which adds more special - characters to the font. Somehow they were already part of the font - image, but not used. - -2008-10-30 Philipp Sehmisch - - * src/net/beinghandler.cpp: Added particle effect on critical hits. - -2008-10-30 Dennis Friis - - * src/net/beinghandler.cpp: Do not set shoe sprite on player move - packet unless supported by eAthena. - -2008-10-28 Dennis Friis - - * src/net/npchandler.cpp: Handle NPC script close. Fixes client input - freeze on no-dialog NPCs. - -2008-10-28 Bjørn Lindeijer - - * src/game.cpp: Fixed trade window being visible on client startup - when it was visible on shutdown. - -2008-10-26 Bjørn Lindeijer - - * src/net/beinghandler.cpp: Since we somehow did end up depending on a - hacked eAthena instead of supporting existing features decently, - assign the shoes and gloves IDs. - -2008-10-26 Philipp Sehmisch - - * src/particle.cpp, src/particleemitter.cpp, src/particleemitter.h, - src/particleemitterprop.h, src/utils/minmax.h: Implemented particle - emitters with properties which change over time according to wave - functions. - * src/Makefile.am, src/CMakeLists.txt, tmw.cbp: Updated project files. - -2008-10-23 Dennis Friis - - * src/net/tradehandler.cpp: Add support for new athena trade-add - failure condition; no free slot. - -2008-10-22 David Athay - - * src/gui/ok_dialog.cpp, src/net/loginhandler.cpp: Now shows ban time. - -2008-10-07 Bjørn Lindeijer - - * src/gui/updatewindow.cpp, src/particleemitter.cpp, - src/simpleanimation.cpp, src/resources/spritedef.cpp: Fixed some - compiler warnings. This probably also fixed the logging of several - error messages. - -2008-10-05 Bjørn Lindeijer - - * src/resources/mapreader.cpp: Added support for object groups that - have an offset. - -2008-10-02 Philipp Sehmisch - - * src/engine.cpp: The "name" property of the map is now used as caption - of minimap window when it exists. - -2008-09-11 Bjørn Lindeijer - - * src/gui/setup_video.cpp: Only require a restart to switch to full - screen with OpenGL on Windows, since it works fine in Linux without - having to reinitialize the OpenGL state. Adapted change by kraant from - Aethyra. - * src/net/network.cpp: Fixed the name of a variable (fix by Scraggy). - -2008-08-29 David Athay - - * src/monster.cpp, src/resources/monsterinfo.h, - src/resources/monsterdb.cpp, src/resources/monsterinfo.cpp: Mantis #406 - by jaxad0127 to implement layered sprites. - -2008-08-28 Douglas Boffey - - * src/localplayer.cpp, src/text.h, src/gui/viewport.cpp, src/npc.cpp, - src/textmanager.h, src/player.cpp, src/monster.h, src/textmanager.cpp, - src/being.cpp, src/npc.h, src/monster.cpp, src/player.h, - src/localplayer.h, src/player_relations.cpp, src/text.cpp, - src/Makefile.am, src/being.h: Move any chat, character names, NPC - names or targetted mob names so that no text will obscure any other - text. If there is no decent place for the text, it will default to - overlapping. - -2008-08-28 Fate - - * src/engine.h, src/gui/ministatus.cpp, src/engine.cpp, - src/particle.h, src/being.cpp, src/player.h, src/net/beinghandler.cpp, - src/net/protocol.h, src/net/playerhandler.cpp, src/being.h: Added - support for being effects through the eAthena levelup message, and - check whether the being exists before referencing it. Re-enabled - proper MP bar display. Improved handling of a warp to the same map. - -2008-08-28 Bjørn Lindeijer - - * src/game.cpp, src/net/beinghandler.cpp, - src/net/charserverhandler.cpp, src/net/protocol.h, - src/net/beinghandler.h, src/net/playerhandler.cpp, src/being.h: - Applied patch put together by Jaxad0127 with changes from the Aethyra - project. Improves compatibility with the newer version of eAthena and - works around an initialization bug. - * data/help/index.txt, data/help/windows.txt: Included some - documentation for the shortcut window by Vq. - * src/resources/mapreader.cpp: Fixed crash when map layer has too many - tiles. - * AUTHORS, src/winver.h, README, configure.ac, data/help/changes.txt, - data/help/header.txt, NEWS, CMakeLists.txt: Updated the version to - 0.0.26 and updated the AUTHORS file. If you have contributed and I - forgot you, please contact me as soon as possible! - -2008-08-28 Philipp Sehmisch - - * src/net/loginhandler.cpp: Removed the usually incorrect "for 5 - minutes" clause from the message displayed to banned users. - * src/particleemitter.cpp: Added output-pause to copy constructor. - -2008-08-27 Bjørn Lindeijer - - * src/particleemitter.h, src/particle.h, src/particleemitter.cpp, - src/particle.cpp: Renamed "randomnes" to "randomness", so that it - won't show up as part of Fate's patch. - -2008-08-24 Philipp Sehmisch - - * src/particleemitter.cpp, src/particleemitter.h: Added new particle - emitter property "output-pause" which allows to define a fixed (or - random) interval between two outputs. - -2008-08-06 Bjørn Lindeijer - - * src/gui/window.cpp: Make sure only to save the window state when a - window name is set, and fail when loadWindowState() is called without - setting a window name. - -2008-08-05 David Athay - - * src/gui/setup_video.cpp, src/net/charserverhandler.cpp: Fixed - alignment issue with fps limit field (patch by Scraggy #384. Also - fixed small spelling error. - -2008-08-04 Dennis Friis - - * src/main.cpp: Fix typo in updatehost reported by Jaxad. - -2008-07-27 Bjørn Lindeijer - - * src/game.cpp: Target the nearest monster on joystick button 3. - -2008-07-25 Bjørn Lindeijer - - * src/winver.h, README, configure.ac, data/help/changes.txt, - data/help/header.txt, NEWS, CMakeLists.txt: Updated the version to - 0.0.25, release planned this Sunday. - * README, data/help/commands.txt: Added documentation for F8 to toggle - shortcut window. - -2008-07-24 Eugenio Favalli - - * src/game.cpp: Fixed visibility of buy and sell dialogs. - * src/gui/buy.cpp: Properly update price after buying. - -2008-07-23 Eugenio Favalli - - * src/game.cpp, src/gui/buy.cpp, src/gui/itemshortcutwindow.cpp, - src/gui/sell.cpp, src/gui/window.cpp: Remember windows visibility. - -2008-07-22 David Athay - - * src/game.cpp: Revert the Alt-Gr fix as it did not work. - * src/game.cpp, src/keyboardconfig.cpp, src/keyboardconfig.h: User can - now configure which modifier key is used for smilies. - -2008-07-21 David Athay - - * src/game.cpp: Initial attempt at fixing Alt-Gr issue for Rotonen, - this commit is just for him! - -2008-07-18 Bjørn Lindeijer - - * src/main.cpp: Remove possible trailing slash at the end of the - update host, since otherwise there'll be two of them. - -2008-07-16 Lloyd Bryant - - * src/logindata.h, src/gui/char_server.cpp, src/gui/char_server.h, - src/serverinfo.h, src/main.cpp, src/net/loginhandler.cpp, - src/net/loginhandler.h, src/net/network.cpp: Added support for - handling the custom eAthena packet that sends the update host. - -2008-07-10 Eugenio Favalli - - * tmw.cbp: Restored executable icon. - -2008-07-08 David Athay - - * src/gui/chat.cpp, src/gui/chat.h: Mantis #359 patch by Scraggy. - -2008-06-30 Bjørn Lindeijer - - * src/CMakeLists.txt: Updated CMake file to fix compilation. Patch by - darkKnight. - -2008-06-24 Philipp Sehmisch - - * src/particle.cpp, src/particle.h, src/particleemitter.cpp, - src/particleemitter.h: Added particle property "follow-parent" which - makes the particle move when its parent particle is moved. - -2008-06-23 Philipp Sehmisch - - * src/imageparticle.cpp, src/particle.cpp, src/particle.h, - src/particleemitter.cpp, src/particleemitter.h, src/textparticle.cpp: - Implemented "alpha" particle property. - -2008-06-22 Bjørn Lindeijer - - * src/player_relations.h: Fixed warning about missing virtual - destructor. - -2008-06-17 Fate - - * src/net/tradehandler.cpp: bug #333: Suppress `trade with X cancelled' - messages for ignored players. - -2008-06-16 Fate - - * player_relations.h: Allow whispers by default. - -2008-06-14 David Athay - - * src/gui/shop.cpp, src/gui/browserbox.cpp, src/net/tradehandler.cpp: - Fixed compilation errors. Fixed trade bug (although a little hacky - right now). - * src/net/tradehandler.cpp: Changed bug fix as requested by Bjørn. - -2008-06-08 Fate - - * src/gui/table.cpp: Invalidate mTopWidget whenever the model is - regenerated to reflect that we have no current valid selection. - * src/player_relations.cpp: Proper handling of case where player, to - apply ignore strategy to, is NULL. - -2008-06-05 Philipp Sehmisch - - * src/particle.cpp, src/gui/setup_video.cpp: Lowered default particle - detail level. - -2008-06-05 Bjørn Lindeijer - - * src/gui/updatewindow.cpp, src/gui/updatewindow.h, src/main.cpp, - src/resources/buddylist.cpp, src/resources/spritedef.cpp, - src/resources/resourcemanager.cpp: Added command line argument to - specify the update host (-H). Also, to avoid problems when files with - the same name are served by different update hosts, the updates are - now stored in an update host specific directory. Based on a patch by - Sanga. - -2008-06-04 Lloyd Bryant - - * src/net/charserverhandler.cpp: Display shield sprite also in - character select window. - -2008-05-30 Lloyd Bryant - - * src/net/equipmenthandler.cpp, src/net/beinghandler.cpp, - src/net/protocol.h, src/being.h: Merged handling for eAthena packets - 0x00c3 and 0x01d7 and added support for displaying a shield sprite. - -2008-05-28 Philipp Sehmisch - - * src/particle.cpp: Changed the way particle emitter skip is handled - to make linear and circular emitters work with particleEmitterSkip - enabled. - * src/gui/setup.cpp, src/gui/setup_video.cpp, src/gui/setup_video.h: - Added slider for controlling particleEmitterSkip (overall quality of - particle effects) to video setup menu. - -2008-05-28 Dennis Friis - - * src/being.cpp: Change order of direction to up/down/right/left in - Being::getSpriteDirection to fix inconsistancy of facing direction - when walking diagonally. - -2008-05-27 David Athay - - * src/main.cpp, src/player_relations.cpp: Changed OSX tmw directory to - a more suitable location, and fixed compile error. - -2008-05-22 Bjørn Lindeijer - - * src/Makefile.am, src/CMakeLists.txt: Fixed linker error caused by - missing module. - -2008-05-19 Bjørn Lindeijer - - * src/gui/setup_players.cpp, src/gui/popup_box.h, src/gui/viewport.h, - src/gui/popup_box.cpp, src/gui/setup_players.h, src/Makefile.am: - Removed the PopupBox class and used gcn::DropDown instead. It has - clipping issues, but it would be better to fix those instead of using - this complicated workaround. - -2008-05-19 Philipp Sehmisch - - * src/net/beinghandler.cpp: Implemented interpretation of names for - NPCs and monsters. - * src/npc.cpp, src/resources/npcdb.cpp, src/resources/npcdb.hpp: Added - the possibility to add particle effects to NPCs in npcs.xml. - -2008-05-16 David Athay - - * src/gui/popupmenu.cpp: Applied QOAL's patch to fix popup bug. - -2008-05-14 Fate - - * src/configuration.cpp, src/game.cpp, src/player_relations.h, - src/beingmanager.h, src/gui/setup_players.cpp, src/gui/setup.cpp, - src/gui/table_model.h, src/gui/table_model.cpp, src/gui/popup_box.h, - src/gui/popup_box.cpp, src/gui/table.h, src/gui/setup.h, - src/gui/table.cpp, src/gui/setup_players.h, src/gui/popupmenu.cpp, - src/beingmanager.cpp, src/player.cpp, src/main.cpp, src/being.cpp, - src/player.h, src/net/tradehandler.h, src/net/beinghandler.cpp, - src/net/tradehandler.cpp, src/net/chathandler.cpp, - src/configuration.h, src/player_relations.cpp, src/Makefile.am, - src/being.h, data/graphics/gui/emotions.png, - data/graphics/gui/Makefile.am, data/help/commands.txt: Added ability - to define friends, players you want to ignore or disregard and - configure whether trading is allowed. Based on new popup code, - configuration improvements to store hierarchical data and a table - model. - -2008-05-08 Dennis Friis - - * src/game.cpp: Make F8 toggle shortcut window as suggested by And1 - and fate. - * src/game.cpp, src/gui/chat.h, src/gui/chat.cpp: Allow page up and - page down to scroll the chat window, based on patch by fate. - -2008-05-06 Dennis Friis - - * src/gui/itemshortcutcontainer.cpp: Don't allow dragging of empty - placeholders. - -2008-04-29 Bjørn Lindeijer - - * src/game.cpp, src/gui/chat.h, src/gui/chat.cpp: Fixed issue with - determining whether chat input is focused (method no longer virtual). - * src/gui/itemshortcutcontainer.cpp: Fixed sometimes rendering with - the wrong font. - * src/gui/window.h, src/gui/window.cpp: Fixed warnings about hiding - virtual method, Window now always deletes its children (the option not - to do so was never used anyway). - * src/gui/gccontainer.h, src/gui/gccontainer.cpp: Removed unused - option from GCContainer to not delete a child, fixing warnings about - hiding virtual method gcn::Container::add. - * src/log.h, src/resources/imageset.cpp: When compiling with GCC, use - the printf format attribute for the log method so that the compiler - checks the type of its parameters. - -2008-04-28 Bjørn Lindeijer - - * src/gui/inventorywindow.h, src/gui/itemcontainer.h, - src/gui/inventorywindow.cpp, src/gui/scrollarea.h, - src/gui/itemcontainer.cpp, src/gui/scrollarea.cpp: Properly fix - problems with ItemContainer in InventoryWindow not resizing properly - since upgrade to Guichan 0.8.0. - -2008-04-28 Dennis Friis - - * src/gui/scrollarea.h, src/gui/scrollarea.cpp: Add methods to get - width and height adjusted for any visible scrollbars. - * src/gui/itemcontainer.cpp: Fix buildup of whitespace by using - correct gridHeight and adding just 4px space to bottom. - * src/gui/inventorywindow.h, src/gui/inventorywindow.cpp: Switch to - use our extended ScrollArea and use adjusted width to proper calculate - the grid for itemcontainer. - * src/game.cpp: Tweak keyboard input handling a bit. This fixes using - emoticons triggering shortcut items to be used. - * src/game.cpp: Remove check for KMOD_NONE since this is not working - uniformly across systems. - -2008-04-27 Dennis Friis - - * src/gui/inventorywindow.cpp: Fix ItemContainer not being resized - properly when resizing inventory window. - -2008-04-26 Dennis Friis - - * src/inventory.cpp: Avoid stacking equipment other than arrows. Based - on similar fix in inventoryhandler. - * src/gui/trade.cpp: Text fix, z => GP. - * src/net/playerhandler.cpp: When picking up GP from trade or quest, - tell the user in the chat window like with items. - -2008-04-24 Dennis Friis - - * src/itemshortcut.h, src/gui/itemshortcutcontainer.cpp, - src/gui/itemcontainer.cpp, src/net/inventoryhandler.cpp, - src/itemshortcut.cpp: Make shortcut container ID based instead of slot - based. Fixes items shifting around often causing equipment to be lost. - * data/help/commands.txt: Document anti-trade function. - -2008-04-22 Bjørn Lindeijer - - * src/beingmanager.cpp: Fixed a bug, thanks GCC 4.3! - -2008-04-20 Bjørn Lindeijer - - * src/main.cpp: Added --data parameter to be used to specify where to - get the data from when using --skipupdate. - -2008-04-18 David Athay - - * src/game.cpp, src/openglgraphics.cpp: Mac now uses Apple key for - emoticons, so alt can be used for alternate characters. Disable vsync - on mac. - -2008-04-17 Dennis Friis - - * src/gui/sell.cpp: Fix shop list not to scroll to top when selling. - Redo of revision 3801 due to changes in guichan 0.8.0. - * src/gui/minimap.cpp: Draw NPCs in yellow on minimap and skip drawing - of warps. Based on idea by leeor_net. - -2008-04-16 Dennis Friis - - * src/gui/browserbox.cpp: Fix a basic_string::at sometimes being out - of range in BrowserBox::draw when checking for line separators and - color codes. - * src/localplayer.cpp: Cancel walking to a clicked monster if the - target is lost while getting to it (killed or otherwise removed). - -2008-04-16 Bjørn Lindeijer - - * src/gui/npc_text.h, src/gui/textbox.cpp, src/gui/npc_text.cpp, - src/gui/scrollarea.h, src/gui/textbox.h: Restored the text wrapping in - TextBox, since it was based on overriding a method that is no longer - virtual in Guichan 0.8.0. - * src/gui/viewport.cpp: Fixed compilation warning. - -2008-04-15 David Athay - - * src/gui/viewport.cpp, src/beingmanager.cpp, tmw.cbp: Fixed clicking - near player. - -2008-04-14 Dennis Friis - - * src/gui/chat.cpp: Tweaked /whisper command to allow quoting of nicks - with spaces in them. - -2008-04-14 Philipp Sehmisch - - * src/resources/dye.cpp: Fixed multi-channel dyeing (patch by fate) - * src/gui/chat.h: Changed prefix of received whisper messages from - "says:" to "whispers:" - -2008-04-12 Bjørn Lindeijer - - * src/gui/itemshortcutcontainer.h, src/gui/itemshortcutcontainer.cpp, - src/gui/itemshortcutwindow.cpp, src/gui/scrollarea.h, - src/gui/scrollarea.cpp, src/gui/itemshortcutwindow.h: Fixed display of - item shortcut container. gcn::Widget::setWidth is no longer virtual. - -2008-04-11 David Athay - - * src/localplayer.cpp, src/beingmanager.h, src/gui/viewport.cpp, - src/beingmanager.cpp, src/localplayer.h, tmw.cbp: Players now need to - click on the monster sprites rather than the tile. Players will now - move to the target before attacking it. - -2008-04-10 Dennis Friis - - * src/gui/chat.h, src/gui/chat.cpp, src/net/protocol.h, - src/net/chathandler.cpp: Implemented support for whispering to other - players. - -2008-04-10 Philipp Sehmisch - - * src/net/beinghandler.cpp: Critical hits are now displayed. - -2008-04-09 Bjørn Lindeijer - - * src/gui/shoplistbox.cpp, src/gui/shoplistbox.h: Fixed problem with - row height in shop list box. - * src/game.cpp, src/gui/menuwindow.cpp, src/gui/itemcontainer.cpp, - src/main.cpp, src/CMakeLists.txt, src/net/inventoryhandler.cpp, - src/Makefile.am: Re-enabled non-functional item shortcut window, - planned to be fixed for 0.0.25. - -2008-04-12 Bjørn Lindeijer - - * src/gui/widgets/layout.h, src/gui/skill.cpp, src/gui/trade.h, - src/log.h, src/resources/mapreader.cpp, src/resources/spritedef.cpp: - Fixed some compiler warnings and don't try to load particle effects - when no file is set. - -2008-04-08 Bjørn Lindeijer - - * src/map.cpp, src/gui/viewport.cpp, src/tileset.h, src/map.h, - src/resources/imageset.cpp, src/resources/mapreader.cpp, - src/resources/imageset.h, src/resources/mapreader.h, - data/maps/new_3-1.tmx, data/maps/new_1-1.tmx: Implemented support for - an arbitrary number of map layers. The only layer requirement for map - layers are now that the fringe layer is called "Fringe" and that the - collision layer is called "Collision". - -2008-04-07 Bjørn Lindeijer - - * src/particle.cpp, src/utils/xml.cpp, src/utils/xml.h, - src/resources/mapreader.cpp, src/resources/spritedef.cpp, - src/resources/npcdb.h, src/resources/monsterdb.cpp, - src/resources/itemdb.cpp, src/resources/npcdb.cpp, - src/resources/spritedef.h: Added XML::Document class which simplifies - parsing an XML document and automatically cleans it up again. - * src/resources/spritedef.cpp, src/resources/spritedef.h, - data/graphics/sprites/item008.xml: Added support for basing one sprite - definition on another by including it. - * src/being.cpp: Fixed crash on trying to show out of range emoticon. - * src/winver.h, README, configure.ac, data/help/changes.txt, - data/help/header.txt, NEWS, CMakeLists.txt: Updated version, release - date and changes. - -2008-04-03 David Athay - - * src/game.cpp: Tweaked disconnect dialog, hoping to fix a crash bug. - -2008-03-31 Philipp Sehmisch - - * src/main.cpp, src/npc.cpp, src/npc.h, src/resources/npcdb.h, - src/resources/npcdb.cpp, data/npcs.xml, src/Makefile.am, tmc.cbp: - Implemented NPC XML database which maps NPC IDs to one or more - animation files and thus enables animated NPCs. - -2008-03-30 Dennis Friis - - * configure.ac: Updated for tmwdata split. - -2008-03-27 Dennis Friis - - * src/gui/progressbar.cpp, src/gui/scrollarea.cpp: Revert progress bar - changes and initialize mWalkTime. - -2008-03-26 Dennis Friis - - * src/gui/progressbar.cpp, src/localplayer.cpp: Initialized some - uninitialized variables. - -2008-03-23 Bjørn Lindeijer - - * src/engine.h, src/gui/viewport.h, src/engine.cpp, - src/net/playerhandler.cpp: Removed unnecessary forwarding method. - -2008-03-16 Dennis Friis - - * The Mana World.dev: Updated Dev-C++ project file. - -2008-03-11 Bjørn Lindeijer - - * data/graphics/gui/CMakeLists.txt, data/graphics/gui/Makefile.am: - Removed unused image here too. - -2008-03-11 Eugenio Favalli - - * data/graphics/gui/attack_target.png: Removed unused image. - -2008-03-09 Dennis Friis - - * src/game.cpp: Pressing escape in the quit dialog closes the dialog. - * src/gui/chat.cpp, src/gui/chat.h: Fixed a bug with chat messages - without a sender which include semicolons. - * src/chat.cpp: Added "/clear" command to clear chat window. - -2008-03-08 Philipp Sehmisch - - * tools/tmxcopy/main.cpp, tools/tmxcopy/main.map.cpp, - tools/tmxcopy/zlibutils.cpp: Fixed some width/height mixups in - TMXCopy. - -2008-03-07 Bjørn Lindeijer - - * data/*: Moved dynamically released data to its own module (tmwdata). - -2008-03-07 Eugenio Favalli - - * data/equipment.xml, data/graphics/items/armor-legs-chaps.png, - data/graphics/items/armour-head-cowboyblack.png, - data/graphics/items/armour-head-cowboywhite.png, - data/graphics/items/generic-snakeskin.png, - data/graphics/sprites/head-cowboyblack.png, - data/graphics/sprites/head-cowboyblack.xml, - data/graphics/sprites/head-cowboywhite.png, - data/graphics/sprites/head-cowboywhite.xml, - data/graphics/sprites/leg-chaps-female.png, - data/graphics/sprites/leg-chaps-female.xml, - data/graphics/sprites/leg-chaps-male.png, - data/graphics/sprites/leg-chaps-male.xml, - data/graphics/sprites/monster-snake.png, - data/graphics/sprites/monster-snake.xml, - data/graphics/sprites/npcs.png, data/items.xml, data/monsters.xml: - Added new items by Black Don, new xml definitions by Peavey. - -2008-03-02 Eugenio Favalli - - * tmw.cbp: Upgraded project file to latest C::B release. - -2008-03-02 Philipp Sehmisch - - * data/graphics/sprites/leg-jeans-female.png: fixed transparency issue. - -2008-02-26 Eugenio Favalli - - * src/gui/minimap.cpp: Keep minimap status. Based on a patch by Knivey. - * data/graphics/tiles/tulimshar1.png, data/maps/new_3-1.tmx: Added - Modanung's mud tileset and applyed to some houses in Tulimshar. - -2008-02-26 Philipp Sehmisch - - * data/graphics/maps/new_14-1.tmx: Fixed some monster traps on - southwest woodland. - -2008-02-23 Philipp Sehmisch - - * data/graphics/items/generic-ironore.png, data/items.xml: - Implemented iron ore item. - * data/maps/new_10-1.tmx, data/maps/new_11-1.tmx, - data/maps/new_12-1.tmx, data/maps/new_21-1.tmx: Map fixes by - QOAL. - * data/graphics/sprites/head-mask.xml, - data/graphics/sprites/head-warlordhelm.xml: - Animaton fixes by QOAL. - -2008-02-19 Philipp Sehmisch - - * data/maps/new_22-1.tmx: Map fixes at snake dungeon by QOAL. - -2008-02-18 Eugenio Favalli - - * data/graphics/sprites/hairstyle7-female.xml, src/sound.cpp, - src/utils/strprintf.cpp, tmw.cbp: Fixed image name. - -2008-02-13 Philipp Sehmisch - - * data/equipment.xml, data/items.xml, - data/graphics/items/armor-head-crusaderhelm.png, - data/graphics/items/armor-head-infantryhelm.png, - data/graphics/items/armor-head-knighthelm.png, - data/graphics/items/armor-head-warlordhelm.png, - data/graphics/sprites/head-crusaderhelm.png, - data/graphics/sprites/head-infantryhelm.png, - data/graphics/sprites/head-knighthelm.png, - data/graphics/sprites/head-warlordhelm.png, - data/graphics/sprites/head-crusaderhelm.xml, - data/graphics/sprites/head-infantryhelm.xml, - data/graphics/sprites/head-knighthelm.xml, - data/graphics/sprites/head-warlordhelm.xml: Added new headgears by - Black Don (thanks to QOAL for testing and implementation) - -2008-02-12 Dennis Friis - - * src/localplayer.cpp, src/map.cpp, src/gui/viewport.cpp, src/being.cpp - src/map.h: Made pathfinding not halt on collision destination tile, - made moving around with mouse smoother. Added possibility to pass - through players with key controls. - -2008-02-11 Philipp Sehmisch - - * data/maps/new_22-1.tmx: Added music and overlay to snake dungeon. - -2008-02-10 Philipp Sehmisch - - * data/maps/new_23-1.tmx: Added Dimonds Cove outdoor map by MerlinX420. - -2008-02-08 Philipp Sehmisch - - * data/maps/new_14-1.tmx, data/maps/new_22-1.tmx: Added Dimonds Cove - outdoor map by MerlinX420. Fixed some map bugs in snake dungeon. - * data/items.xml: Added chicken leg meta information. - -2008-01-28 Bjørn Lindeijer - - * src/gui/sell.cpp, src/gui/window.cpp, src/gui/inventorywindow.h, - src/gui/buy.h, src/gui/itemshortcutwindow.cpp, - src/gui/inventorywindow.cpp, src/gui/buy.cpp, src/gui/sell.h, - src/gui/window.h, src/gui/windowlistener.h, - src/gui/itemshortcutwindow.h, src/CMakeLists.txt, src/Makefile.am: - Used the gcn::WidgetListener instead of our WindowListener. - -2008-01-26 Bjørn Lindeijer - - * src/gui/trade.h, src/game.h, src/being.h: Fixed a GCC 4.3 compile - error and constified the usage of auto_ptr, since that's the way in - which we are using them. - -2008-01-23 Bjørn Lindeijer - - * src/gui/char_server.cpp, src/gui/window.cpp, src/gui/checkbox.h, - src/gui/playerbox.h, src/gui/button.cpp, src/gui/chat.cpp, - src/gui/slider.cpp, src/gui/tabbedcontainer.cpp, src/gui/textfield.h, - src/gui/shoplistbox.cpp, src/gui/register.cpp, - src/gui/radiobutton.cpp, src/gui/textbox.cpp, src/gui/login.cpp, - src/gui/setup_audio.cpp, src/gui/setup_video.cpp, - src/gui/textfield.cpp, src/gui/playerbox.cpp, - src/gui/setup_joystick.cpp, src/gui/scrollarea.h, - src/gui/windowlistener.h, src/gui/checkbox.cpp, - src/gui/scrollarea.cpp: Compile against Guichan 0.8.0. Some issues - with ShopListBox left and not trying to use their new TabbedArea, - SelectionListener and WidgetListener yet. Also needs more testing. - * src/gui/trade.cpp, src/gui/sell.cpp, src/gui/inventorywindow.h, - src/gui/selectionlistener.h, src/gui/itemcontainer.h, - src/gui/shoplistbox.cpp, src/gui/shoplistbox.h, src/gui/listbox.h, - src/gui/buy.h, src/gui/inventorywindow.cpp, src/gui/buy.cpp, - src/gui/itemcontainer.cpp, src/gui/sell.h, src/gui/trade.h, - src/gui/listbox.cpp, src/CMakeLists.txt, src/Makefile.am: Used the - gcn::SelectionListener instead of our own. - -2008-01-19 Philipp Sehmisch - - * data/maps/new_10-1.tmx, data/maps/new_11-1.tmx: Map fixes by 5t3v3 at - the new snow maps. Added hot spring particle effect to pond south of - snow village. - * data/graphics/particles/bubbles_32px, - data/graphics/particles/bubbles_12px, - data/graphics/particles/bubbles_8px, - data/graphics/particles/whirlpool.particle.xml: Added bubble particle - effect. - -2008-01-14 Philipp Sehmisch - - * data/maps/new_10-1.tmx, data/maps/new_11-1.tmx: Added new versions of - snow maps by 5t3v3. - * src/sound.cpp: Fixed an error in Davids last commit (couldn't compile - that way). - -2008-01-13 David Athay - - * src/resources/resourcemanager.h, src/resources/resourcemanager.cpp, - src/main.cpp, src/sound.cpp, src/engine.cpp: Fixed music loading from - non-default location. - -2008-01-03 Philipp Sehmisch - - * data/maps/new_1-1.tmx, data/maps/new_3-1.tmx: Some map bugs reported - by Strump, fixed by Zipon. - -2007-12-30 Philipp Sehmisch - - * src/gui/viewport.cpp: Added config options to set the scroll center. - * src/engine.cpp, src/engine.h, src/gui/viewport.h, - src/net/playerhandler.cpp: Retained scroll offset during map change for - smoother map transitions. - -2007-12-30 Philipp Sehmisch - - * data/maps/new_22-1.tmx: Some mapping fixes at snake dungeon map. - * src/game.cpp, src/beingmanager.cpp, src/beingmanager.h, - src/keyboardconfig.cpp, src/keyboardconfig.h: Added a key for targeting - the nearest player character based on patches by Trinexx. - -2007-12-28 Philipp Sehmisch - - * data/maps/new_7-1.tmx, data/maps/new_22-1.tmx: Added new map by 5t3v3 - (east desert cave) and enhanced version of eastern desert by Len. - -2007-12-28 Philipp Sehmisch - - * data/maps/new_3-1.tmx: Some mapping errors fixed by Zipon. - * src/being.cpp, src/monster.cpp, src/resources/monsterinfo.cpp, - src/resources/monsterinfo.h: Added the possibility to assign particle - effects to monsters in the monster database. - * data/monsters.xml: Added flame particle effect to fire goblin as a - proof of concept. - -2007-12-26 Bjørn Lindeijer - - * README: Fixed year here too... - -2007-12-25 Bjørn Lindeijer - - * data/help/header.txt: Fixed year. :) - * debian/rules: Fixed missing backslash. - * src/CMakeLists.txt: Updated CMake file. - -2007-12-24 David Athay - - * src/game.cpp: Fixed dialog for disconnections, so it says Ok, not - yes/no. - * src/openglgraphics.cpp: Changed type so it would compile on Leopard. - -2007-12-24 Bjørn Lindeijer - - * README, data/help/changes.txt, data/help/header.txt, NEWS: Updated - release date. - * src/game.cpp, src/gui/menuwindow.cpp, src/gui/itemcontainer.cpp, - src/main.cpp, src/CMakeLists.txt, src/net/inventoryhandler.cpp, - src/Makefile.am: Disabled non-functional item shortcut window. - * src/particleemitter.cpp: Fix compile warning. - -2007-12-23 Philipp Sehmisch - - * src/particleemitter.cpp, src/particleemitter.h: Particle images - are now reference-counted properly. - * src/resources/spritedef.cpp: Error placeholder is now used when - attempting to load a sprite definition file that doesn't exist. - * src/monster.cpp, src/player.cpp: Avoided attempts to load - "data/graphics/" when a monster or equipment piece has no sprite. - * data/graphics/particles/cookingfire.particle.xml: Removed some - particle properties that did nothing because they were misspelled. - -2007-12-22 Bjørn Lindeijer - - * src/winver.h, README, configure.ac, INSTALL, data/help/header.txt, - NEWS, CMakeLists.txt: Updated version to 0.0.24. - * src/net/chathandler.cpp, NEWS: Make sure chat messages are also - trimmed for the local player. - -2007-12-21 David Athay - - * src/game.cpp, src/gui/updatewindow.cpp: Attempted to fix client - freeze when unable to connect to update host, and added exit dialog - when client loses connection. - -2007-12-21 Bjørn Lindeijer - - * src/gui/shoplistbox.cpp: Fixed shop list box not to scroll up when - the selection is removed. - * src/resources/resourcemanager.h, src/resources/resourcemanager.cpp: - Added logging of error on PHYSFS_addToSearchPath. - * src/localplayer.cpp, src/inventory.h, src/gui/inventorywindow.cpp, - src/inventory.cpp, src/localplayer.h: Fixed inventory size not - matching the size assumed by eAthena, and related memory corruption. - * src/main.cpp: Increased default chat log length. - -2007-12-19 Philipp Sehmisch - - * data/maps/new_18-1.tmx: Fixed a map bug (monster trap) on - map 18 (woodland village surrounding) - -2007-12-19 Bjørn Lindeijer - - * tools/upalyzer/analyse.php: Fixed association of entries to update, - added no-cache headers, added a bit of error reporting in case of - invalid zip files, kept original ordering of the update list and - sorted the list of entries on their filename. - * tools/upalyzer/analyse.php: Added list of files in each update with - indication on whether they are still used. - -2007-12-18 Bjørn Lindeijer - - * src/main.cpp: Remember to delete the progressbar and label also when - the game was not started. - * tools/upalyzer/analyse.php: Added initial version of the update - analysis tool upalyzer. - * tools/upalyzer/analyse.php: Optimized with single loop approach and - nicer printing calls, inspired by doener's version. Also added list of - update entries and their respective update. - -2007-12-14 Philipp Sehmisch - - * data/graphics/sprites/head-mask.png, - data/graphics/sprites/head-mask.xml, - data/graphics/sprites/head-mushroom.xml, - data/graphics/sprites/head-shroom.xml, - data/items.xml, data/equipment.xml: - Fixed some problems with the new items. - -2007-12-12 Philipp Sehmisch - - * data/graphics/tiles/cave.png, data/graphics/tiles/cave_x2.png: - Fixed the blurred outlines of the new tiles. - -2007-12-12 Bjørn Lindeijer - - * data/graphics/tiles/cave.png, data/graphics/tiles/cave_x2.png, - data/maps/new_4-1.tmx: Added two new cave tiles by yosuhara. - -2007-12-12 Philipp Sehmisch - - * tools/tmxcopy/base64.cpp, - tools/tmxcopy/base64.h, tools/tmxcopy/main.cpp, - tools/tmxcopy/map.cpp, tools/tmxcopy/map.hpp, - tools/tmxcopy/readme.txt, tools/tmxcopy/tmxcopy.cbp, - tools/tmxcopy/tostring.h, tools/tmxcopy/xmlutils.cpp, - tools/tmxcopy/xmlutils.h, tools/tmxcopy/zlibutils.cpp, - tools/tmxcopy/zlibutils.h: Added my tmxcopy tool for copying - parts of maps to other maps. - -2007-12-10 Bjørn Lindeijer - - * src/being.cpp: Include cassert header. - -2007-12-10 Philipp Sehmisch - - * src/being.cpp, src/being.h, src/net/beinghandler.cpp, - src/net/charserverhandler.cpp, src/net/equipmenthandler.cpp, - src/player.cpp, src/player.h, data/items.xml: Simplified player - subsprite handling by treating equipment, hairstyle and base - sprites alike. This also enables gender-specific hairstyles. - * src/game.cpp, src/gui/chat.cpp, src/gui/chat.h, src/log.cpp, - src/log.h: Added an option to show log messages in the chat console. - * data/items.xml, - data/graphics/sprites/hairstyle1.png, - data/graphics/sprites/hairstyle1.xml, - data/graphics/sprites/hairstyle1-male.png, - data/graphics/sprites/hairstyle1-male.xml, - data/graphics/sprites/hairstyle1-female.png, - data/graphics/sprites/hairstyle1-female.xml, - data/graphics/sprites/hairstyle2.png, - data/graphics/sprites/hairstyle2.xml, - data/graphics/sprites/hairstyle2-male.png, - data/graphics/sprites/hairstyle2-male.xml, - data/graphics/sprites/hairstyle2-female.png, - data/graphics/sprites/hairstyle2-female.xml, - data/graphics/sprites/hairstyle3.png, - data/graphics/sprites/hairstyle3.xml, - data/graphics/sprites/hairstyle3-male.png, - data/graphics/sprites/hairstyle3-male.xml, - data/graphics/sprites/hairstyle3-female.png, - data/graphics/sprites/hairstyle3-female.xml, - data/graphics/sprites/hairstyle4.png, - data/graphics/sprites/hairstyle4.xml, - data/graphics/sprites/hairstyle4-male.png, - data/graphics/sprites/hairstyle4-male.xml, - data/graphics/sprites/hairstyle4-female.png, - data/graphics/sprites/hairstyle4-female.xml, - data/graphics/sprites/hairstyle5.png, - data/graphics/sprites/hairstyle5.xml, - data/graphics/sprites/hairstyle5-male.png, - data/graphics/sprites/hairstyle5-male.xml, - data/graphics/sprites/hairstyle5-female.png, - data/graphics/sprites/hairstyle5-female.xml, - data/graphics/sprites/hairstyle6.png, - data/graphics/sprites/hairstyle6.xml, - data/graphics/sprites/hairstyle6-male.png, - data/graphics/sprites/hairstyle6-male.xml, - data/graphics/sprites/hairstyle6-female.png, - data/graphics/sprites/hairstyle6-female.xml, - data/graphics/sprites/hairstyle7.png, - data/graphics/sprites/hairstyle7.xml, - data/graphics/sprites/hairstyle7-male.png, - data/graphics/sprites/hairstyle7-male.xml, - data/graphics/sprites/hairstyle7-female.png, - data/graphics/sprites/hairstyle7-female.xml: - Implemented female hairstyles. - -2007-12-09 Philipp Sehmisch - - * data/graphics/sprites/head-funkywinter.png, - data/graphics/sprites/head-funkywinter.xml, - data/graphics/sprites/head-xmaself.png, - data/graphics/sprites/head-xmaself.xml: New versions of funky hat - and elf hat by QOAL. - -2007-12-04 Philipp Sehmisch - - * data/graphics/items/generic-santacookie.png, - data/items.xml: Added a new drop item for the christmas event. - -2007-12-05 Bjørn Lindeijer - - * src/map.cpp, src/map.h: Fix drawing of very high fringe tiles by - keeping track of the maximum tile height. - * src/itemshortcut.h, src/gui/itemshortcutcontainer.h, - src/gui/itemshortcutcontainer.cpp, src/gui/itemshortcutwindow.cpp, - src/gui/itemshortcutwindow.h, src/itemshortcut.cpp: Random cleanups. - -2007-12-04 Philipp Sehmisch - - * data/graphics/sprites/head-funkywinter.png, - data/graphics/sprites/head-funkywinter.xml, - data/graphics/sprites/head-mask.png, - data/graphics/sprites/head-mask.xml, - data/graphics/sprites/head-mushroom.png, - data/graphics/sprites/head-mushroom.xml, - data/graphics/sprites/head-shroom.png, - data/graphics/sprites/head-shroom.xml, - data/graphics/sprites/head-tophat.png, - data/graphics/sprites/head-tophat.xml, - data/graphics/sprites/head-xmaself.png, - data/graphics/sprites/head-xmaself.xml, - data/graphics/items/armor-head-xmaself.png, - data/graphics/items/armor-head-mask.png, - data/items.xml: Added/renamed some headgears for the christmas event. - -2007-11-20 Philipp Sehmisch - - * data/graphics/maps/new_1-1.tmx, - data/graphics/maps/new_3-1.tmx, - data/graphics/maps/new_15-1.tmx: Updated desert maps with new - tiles by Len. - -2007-11-16 Bjørn Lindeijer - - * src/floor_item.cpp, src/localplayer.cpp, src/item.cpp, - src/inventory.h, src/gui/sell.cpp, src/gui/equipmentwindow.cpp, - src/gui/shop.cpp, src/gui/shoplistbox.cpp, src/gui/shop.h, - src/gui/itemshortcutcontainer.cpp, src/gui/buy.cpp, - src/gui/itemcontainer.cpp, src/inventory.cpp, src/item.h, - src/equipment.h, src/shopitem.cpp, src/CMakeLists.txt, - src/floor_item.h, src/net/inventoryhandler.cpp, src/equipment.cpp, - src/localplayer.h, src/Makefile.am, src/resources/iteminfo.h, - src/resources/itemdb.cpp, src/resources/iteminfo.cpp, src/shopitem.h: - Moved item icon from ItemInfo class to the Item class, so that it can - be loaded on demand. Results in faster startup time and reduced memory - usage. - -2007-11-16 Guillaume Melquiond - - * src/resources/resourcemanager.h, src/resources/resource.h, - src/resources/resourcemanager.cpp, src/resources/resource.cpp: Delayed - resource deletion by 30 seconds. - * src/resources/image.cpp: Sped up recoloring of transparent pixels. - -2007-11-16 Eugenio Favalli - - * src/log.cpp, src/utils/wingettimeofday.h: Removed useless win32 - implementation of gettimeofday. - * src/log.cpp, tmw.cbp: Fixed minor issues. - -2007-11-11 Bjørn Lindeijer - - * src/gui/item_amount.cpp, src/gui/item_amount.h, - src/gui/inventorywindow.cpp: Moved check on dropping 1 item to the - inventory dialog. - -2007-11-09 Philipp Sehmisch - - * data/graphics/sprites/chest-chainmail-male, - data/graphics/sprites/chest-chainmail-female, - data/graphics/sprites/chest-cotton-male, - data/graphics/sprites/chest-cotton-female, - data/graphics/sprites/chest-leather-male, - data/graphics/sprites/chest-leather-female, - data/graphics/sprites/chest-tnecksweater-male, - data/graphics/sprites/chest-tnecksweater-female, - data/graphics/sprites/chest-vnecksweater-male, - data/graphics/sprites/chest-vnecksweater-female: - Modifications at the back shading of shirt sprites by Pauan. - -2007-11-04 Guillaume Melquiond - - * src/resources/dye.cpp, src/resources/resourcemanager.cpp: Moved - palette qualifiers to the right as the code appends things on the left. - * src/resources/spritedef.cpp, src/resources/spritedef.h, - src/resources/resourcemanager.h: Added propagation of palettes through - sprite resource names. - * data/monsters.xml, data/graphics/sprites/monster-scorpion.xml: Used - palettes on sprite names. - * data/graphics/sprites/monster-scorpion-black.xml, - data/graphics/sprites/monster-scorpion-red.xml: Removed obsolete files. - * src/player.cpp: Added hair colors. - * data/graphics/sprites/hairstyle*.xml: Removed sprite variants. Set - replaceable color. - * data/graphics/sprites/hairstyle*.png: Reduced image sizes. - * data/monsters.xml, data/graphics/sprites/monster-slime.xml, - data/graphics/sprites/monster-slime.png: Added generic slime. - * data/graphics/sprites/monster-slime-{green,red,yellow}.png, - data/graphics/sprites/monster-slime-{green,red,yellow}.xml: Removed - obsolete files. - -2007-11-03 Guillaume Melquiond - - * src/player.cpp, src/player.h, src/gui/char_select.cpp: Factored code. - * src/net/beinghandler.cpp, src/net/charserverhandler.cpp: Fixed double - load of hair graphics. - * src/Makefile.am, src/resources/dye.cpp, src/resources/dye.h: Added - palette holder and linear interpolator of colors. - * src/resources/image.h, src/resources/image.cpp: Added palette-based - recoloring of images. - * src/resources/resourcemanager.h, src/resources/resourcemanager.cpp: - Added automatic recoloring of images depending on their names. - * data/graphics/sprites/monster-scorpion.png: Flattened colors. - * data/graphics/sprites/monster-scorpion-black.png, - data/graphics/sprites/monster-scorpion-red.png: Removed obsolete files. - * data/graphics/sprites/monster-scorpion.xml, - data/graphics/sprites/monster-scorpion-black.xml, - data/graphics/sprites/monster-scorpion-red.xml: Added automatic - recoloring of scorpions. - -2007-11-01 Philipp Sehmisch - - * data/graphics/particles/aniblaze.png, - data/graphics/particles/cookingfire.particle.xml, - data/graphics/particles/fireplace.particle.xml, - data/graphics/particles/flame.particle.xml: Improved fire particle - effects by using animated particles. - -2007-10-31 Philipp Sehmisch - - * data/items.xml, data/graphics/sprites/leg-skirt.png, - data/graphics/sprites/leg-skirt.xml, - data/graphics/items/armor-leg-skirt.png: Added skirt by Saphy. - ViewID is 26, item ID is 632, item properties are c&p from jeans - shorts. - -2007-10-27 Guillaume Melquiond - - * src/properties.h, src/game.cpp, src/channel.h, src/log.cpp, - src/gui/window.cpp, src/gui/setup.cpp, src/gui/button.cpp, - src/gui/chat.h, src/gui/widgets/dropdown.cpp, src/gui/chat.cpp, - src/gui/tabbedcontainer.cpp, src/gui/windowcontainer.cpp, - src/gui/skill.cpp, src/gui/serverdialog.cpp, src/gui/textfield.cpp, - src/gui/playerbox.cpp, src/gui/scrollarea.cpp, src/beingmanager.cpp, - src/flooritemmanager.cpp, src/channelmanager.cpp, src/main.cpp, - src/particle.cpp, src/net/messageout.cpp, src/channel.cpp, - src/localplayer.h, src/resources/imageset.cpp, - src/resources/buddylist.cpp, src/resources/monsterinfo.h, - src/resources/iteminfo.h, src/resources/monsterdb.cpp, - src/resources/monsterinfo.cpp, src/resources/itemdb.cpp: Fixed missing - dependencies, spurious const qualifiers, and weak brackets, so that it - compiles with GCC 4.3. - -2007-10-26 Philipp Sehmisch - - * src/gui/item_ammount.cpp: Item amount dialog is now skipped - when there is only one item on the stack. - * src/browserbox.cpp, src/browserbox.h, src/chat.h, src/main.cpp: - Added possibility of length limitation to browserbox and used it - for the chatlog (length set by the config option "ChatLogLength"). - * src/chat.cpp, src/chat.h: Removed some completely useless code - from the chat class. - * src/monster.cpp, src/monster.h, data/sfx/logmonster-hurt1.ogg, - data/sfx/logmonster-hurt2.ogg, data/sfx/logmonster-hurt3.ogg, - data/sfx/logmonster-hurt4.ogg, data/sfx/logmonster-hurt5.ogg: - Implemented monster hurt sounds and added new sound effects by - Cosmostrator. - -2007-10-24 Philipp Sehmisch - - * data/items.xml, data/graphics/items/generic-darkcrystal.png: - Added a new quest loot item for the halloween event. - -2007-10-22 Guillaume Melquiond - - * src/particle.cpp: Plugged memory leak. - * src/configuration.cpp, src/main.cpp: Plugged memory leak. Cleaned - code. - -2007-10-21 Guillaume Melquiond - - * src/gui/window.cpp, src/gui/window.h: Removed redundant resizable - flag. Factored moving/resizing code, so that events are fired only - once per size change. - * src/resources/spritedef.cpp: Plugged memory leak in sprites. - * src/resources/action.cpp: Fixed double-free of sprite actions. - * src/resources/iteminfo.cpp, src/resources/iteminfo.h: Plugged memory - leak in equipment sound. - * src/resources/monsterdb.cpp: Plugged memory leak in database reader. - * src/engine.cpp, src/engine.h, src/game.cpp: Fixed current map not - deleted on server change. - * src/gui/trade.cpp: Added persistent positioning. - * src/gui/menuwindow.cpp: Fixed missing pixels at bottom and right. - * src/gui/window.cpp, src/gui/window.h: Changed to use default values - when restoring missing settings. - * src/gui/shoplistbox.cpp, src/gui/listbox.cpp: Fixed invisible text. - -2007-10-20 Guillaume Melquiond - - * src/gui/playerbox.cpp: Centered sprite inside selection box. - -2007-10-19 Guillaume Melquiond - - * src/resources/resource.cpp, src/resources/resource.h, - src/resources/imageset.cpp, src/resources/imageset.h: Removed mandatory - identifier path. - * src/resources/resourcemanager.cpp, src/resources/resourcemanager.h: - Factored code between resource handlers. - * src/resources/soundeffect.h, src/resources/soundeffect.cpp, - src/resources/music.h, src/resources/music.cpp, src/resources/image.h, - src/resources/image.cpp: Reworked resource loaders. - * src/resources/spritedef.h, src/resources/spritedef.cpp: Implemented - a failure-friendly loader. - * src/gui/truetypefont.cpp, src/resources/imageloader.cpp, - src/tileset.h: Removed dummy parameter. - -2007-10-19 Philipp Sehmisch - - * data/graphics/images/ambient/fog.png: Added fog effect overlay - graphic. - -2007-10-18 Guillaume Melquiond - - * src/resources/iteminfo.h, src/resources/itemdb.cpp: Removed unused - slot field. - * src/localplayer.cpp, src/localplayer.h: Removed specific type. - * src/gui/viewport.cpp, src/gui/minimap.cpp: Changed identification of - local player to a check of player_node. - * src/animatedsprite.cpp, src/animatedsprite.h, src/npc.cpp, - src/player.cpp, src/monster.cpp, src/resources/resourcemanager.cpp: - Prevented client from exiting on missing sprites. - * src/resources/spritedef.cpp: Added filename to fatal error messages. - * src/resources/iteminfo.cpp, src/resources/iteminfo.h, - src/resources/itemdb.cpp, data/items.xml: Merged weapon_type and - attacktype field. - -2007-10-18 Philipp Sehmisch - - * data/graphics/sprites/hairstyle7-male.png, - data/graphics/sprites/hairstyle7-female.png: Readded hairstyle number - 7. - -2007-10-18 Bjørn Lindeijer - - * src/game.cpp, src/net/tradehandler.h, src/net/tradehandler.cpp: - Implemented automatic denying of trade requests based on a patch - submitted by Quiche_on_a_leash. - -2007-10-07 Philipp Sehmisch - - * data/graphics/maps/new_18-1.tmx: Fixed some collision layer problems. - -2007-10-01 Philipp Sehmisch - - * src/player.cpp, data/graphics/sprites/hairstyle*: - Added support for different hairstyles for male and female characters - (current female hairstyles are copies of the male ones until the - real female ones are finished) - -2007-09-30 Philipp Sehmisch - - * data/graphics/tiles/desert_x3.png: Removed the purple line from the - ruin tile. - -2007-09-27 Philipp Sehmisch - - * data/graphics/tiles/desert2.png, data/graphics/tiles/desert_x3.png, - data/graphics/tiles/desert_x5.png: Added new desert tiles by Len. - -2007-09-20 Eugenio Favalli - - * data/equipment.xml, data/graphics/items/armor-head-funkyhat.png, - data/graphics/items/armor-head-mushroomhat.png, - data/graphics/items/armor-head-shroomhat.png, - data/graphics/items/armor-head-tophat.png, - data/graphics/sprites/item019.png, data/graphics/sprites/item019.xml, - data/graphics/sprites/item020.png, data/graphics/sprites/item020.xml, - data/graphics/sprites/item021.png, data/graphics/sprites/item021.xml, - data/graphics/sprites/item022.png, data/graphics/sprites/item022.xml, - data/items.xml, data/maps/new_21-1.tmx: Added 4 new items and a new ice - cave map. - -2007-09-12 Bjørn Lindeijer - - * data/items.xml, data/equipment.xml: Added temporary weapon IDs below - 256 to use as view-ID in eAthena's item DB. - * src/gui/shoplistbox.cpp, src/gui/buy.h, src/gui/buy.cpp: Allowed - selection of items that cannot be afforded, so that their descriptions - are still accessible. Also made sure the player's money value of - ShopItemList gets updated. - -2007-09-11 Eugenio Favalli - - * src/gui/chat.cpp, tmw.cbp: Fixed admin commands. - -2007-09-08 Philipp Sehmisch - - * data/graphics/particles/aniblaze.png, - data/graphics/particles/cookingfire.particle.xml, - data/graphics/particles/fireplace.particle.xml, - data/graphics/particles/flame.particle.xml: Improved fire effects by - using animated particles. - -2007-09-06 Philipp Sehmisch - - * src/animationparticle.cpp, src/imageparticle.cpp: Fixed animated - particles. - -2007-09-01 Bjørn Lindeijer - - * src/Makefile.am: Fixed the entry for windowlistener.h. - -2007-08-30 Bjørn Lindeijer - - * src/localplayer.cpp, src/player.cpp, src/main.cpp, src/being.cpp, - src/CMakeLists.txt, src/Makefile.am, src/resources/iteminfo.h, - src/resources/equipmentdb.h, src/resources/equipmentinfo.h, - src/resources/itemdb.cpp, src/resources/iteminfo.cpp, - src/resources/equipmentdb.cpp, src/resources/equipmentinfo.cpp, - src/resources/spritedef.h, src/being.h, data/items.xml, - data/equipment.xml: Merged equipment database with items database and - got rid of the unused item art attribute. - * src/net/beinghandler.cpp, src/net/charserverhandler.cpp: Removed the - now unnecessary multiplication of weapon IDs with 10000. - * src/resources/iteminfo.cpp, data/graphics/items/unknown.png: Added - fallback item icon and use it for unknown items or when item image - fails to load. - * NEWS: Updated with changes since last update. - * data/items.xml, data/equipment.xml: Reverted equipment database and - included original low-ID items in items.xml for compatibility with - eAthena, which doesn't support View ID to come above 255. - * src/resources/itemdb.cpp: Accept items without a name. - -2007-08-29 Bjørn Lindeijer - - * src/gui/sell.cpp, src/gui/inventorywindow.cpp, src/gui/sell.h: Made - sell dialog resizable and tweaked inventory resize code a bit. - * data/items.xml: Fixed typo in chainmail description. - -2007-08-28 Bjørn Lindeijer - - * src/gui/window.cpp, src/gui/inventorywindow.h, - src/gui/selectionlistener.h, src/gui/buy.h, - src/gui/itemshortcutwindow.cpp, src/gui/inventorywindow.cpp, - src/gui/buy.cpp, src/gui/window.h, src/gui/windowlistener.h, - src/gui/itemshortcutwindow.h, src/CMakeLists.txt, src/Makefile.am: - Made buy dialog resizable and added a WindowListener class for - listening for window resize and move events. - * src/textparticle.h, src/particle.h, src/CMakeLists.txt, - src/particle.cpp, src/imageparticle.cpp, src/vector.h, - src/textparticle.cpp, src/Makefile.am: Added Vector class and used it - in the particle engine. - -2007-08-27 Bjørn Lindeijer - - * src/engine.cpp, src/resources/mapreader.cpp: Made client search for - both compressed and non-compressed map files. - -2007-08-27 Eugenio Favalli - - * src/game.cpp: Assigned unused emotions to Alt +/-. (applied a patch - by Quiche_on_a_leash). - * data/maps/new_1-1.tmx, data/maps/new_1-1.tmx.gz, - data/maps/new_10-1.tmx, data/maps/new_10-1.tmx.gz, - data/maps/new_11-1.tmx, data/maps/new_11-1.tmx.gz, - data/maps/new_12-1.tmx, data/maps/new_12-1.tmx.gz, - data/maps/new_13-1.tmx, data/maps/new_13-1.tmx.gz, - data/maps/new_14-1.tmx, data/maps/new_14-1.tmx.gz, - data/maps/new_15-1.tmx, data/maps/new_15-1.tmx.gz, - data/maps/new_16-1.tmx, data/maps/new_16-1.tmx.gz, - data/maps/new_17-1.tmx, data/maps/new_17-1.tmx.gz, - data/maps/new_18-1.tmx, data/maps/new_18-1.tmx.gz, - data/maps/new_19-1.tmx, data/maps/new_19-1.tmx.gz, - data/maps/new_2-1.tmx, data/maps/new_2-1.tmx.gz, - data/maps/new_20-1.tmx, data/maps/new_20-1.tmx.gz, - data/maps/new_3-1.tmx, data/maps/new_3-1.tmx.gz, - data/maps/new_4-1.tmx, data/maps/new_4-1.tmx.gz, - data/maps/new_5-1.tmx, data/maps/new_5-1.tmx.gz, - data/maps/new_6-1.tmx, data/maps/new_6-1.tmx.gz, - data/maps/new_7-1.tmx, data/maps/new_7-1.tmx.gz, - data/maps/new_8-1.tmx, data/maps/new_8-1.tmx.gz, - data/maps/new_9-1.tmx, data/maps/new_9-1.tmx.gz: Replaced compressed - maps with layer compressed maps. - -2007-08-26 Eugenio Favalli - - * src/gui/updatewindow.cpp, src/main.cpp, tmw.cbp: Removed home dir - from config file to avoid encoding issues. - -2007-08-26 Guillaume Melquiond - - * src/gui/button.cpp: Fixed incorrect button dimensions, as they mess - OpenGL display with rectangle textures. - * src/graphics.cpp, src/openglgraphics.h, src/graphics.h, - src/openglgraphics.cpp: Fixed fonts not being recolored by adding an - explicit parameter to require it. - -2007-08-25 Guillaume Melquiond - - * configure.ac: Removed dependency on Guichan's OpenGL library. - * src/Makefile.am, src/resources/sdlimageloader.cpp, - src/resources/sdlimageloader.h, src/resources/openglsdlimageloader.h, - src/resources/openglsdlimageloader.cpp, src/resources/imageloader.cpp, - src/resources/imageloader.h, src/gui/gui.cpp, src/gui/gui.h: Replaced - Guichan's image loaders with our owns, so that we have control over all - the images used as textures. - * src/resources/image.cpp, src/openglgraphics.h, src/resources/image.h, - src/openglgraphics.cpp, src/graphics.cpp, src/graphics.h: Added support - for rectangle OpenGL textures when available, in order to reduce video - memory usage. - -2007-08-24 Bjørn Lindeijer - - * src/gui/gui.h, src/gui/gui.cpp: Removed useless logic method and - reverted mouse cursor to non-static since there can be only one Gui - instance so there is no point in supporting a shared resource. - * src/gui/window.cpp, src/gui/gui.h: Removed unnecessary - Gui::isCustomCursor method. - * src/gui/char_select.h, src/gui/char_select.cpp, src/utils/trim.h: - Added trimming of name for new character creation. - * src/net/chathandler.cpp: Added trimming of chat messages appearing - above players. - * src/gui/window.cpp, src/gui/window.h: Improved resize mouse cursor - indication, removing duplicated code and fixing indicator above resize - grip. - -2007-08-23 Bjørn Lindeijer - - * src/gui/viewport.h, src/gui/viewport.cpp: Removed two useless popup - related methods. - * src/gui/debugwindow.h, src/gui/debugwindow.cpp: Use generic close - button functionality. - * src/particle.h, src/particleemitter.cpp, src/particle.cpp: Renamed - Particle::mVector to Particle::mVelocity for clarity. - * src/localplayer.cpp, src/gui/ministatus.cpp, src/gui/status.cpp, - src/being.cpp, src/net/charserverhandler.cpp, - src/net/playerhandler.cpp, src/localplayer.h, src/being.h: Changed XP - gaining effect to appear on the player instead. - * data/graphics/gui/hits_yellow.png: Restored shadow of yellow font. - -2007-08-22 Bjørn Lindeijer - - * src/gui/itemshortcutcontainer.h: Fixed compiler warning. - * src/CMakeLists.txt, src/Makefile.am: Updated source lists. - * data/graphics/gui/CMakeLists.txt, data/graphics/gui/Makefile.am: - Added close button and item shortcut backgrounds to files that will be - installed. - * src/gui/itemshortcutcontainer.cpp: Make sure mGridWidth and - mGridHeight are initialized properly (fixes arithmetic exception in - ItemShortcutContainer::draw). - * src/keyboardconfig.cpp: Changed default sitting key back to 's'. - * src/net/equipmenthandler.cpp: Removed a line that attempted to set - the player's weapon sprite with each kind of equipment. Seems to work - fine without as well. - * src/gui/chat.cpp, src/utils/trim.h, src/CMakeLists.txt, - src/Makefile.am: Added trimming of chat messages. - -2007-08-22 Philipp Sehmisch - - * data/graphics/sprites/chest-lightplatemail-male.png, - data/graphics/sprites/chest-lightplatemail-female.png, - data/graphics/items/armor-chest-lightplatemail.png, - data/graphics/tiles/woodland_indoor_x2.png: Another color correction - at the light platemail (looks more metalic now) - * data/maps/new_18-1.tmx.gz, data/maps/new_19-1.tmx.gz, - data/images/minimap_new_18-1.png, data/images/minimap_new_19-1.png: - Removed a tree that prevented people from sitting on one of the - benches properly. Added correct minimap to woodland village and - surrounding. - -2007-08-22 Joshua Langley - - * data/graphics/gui/item_shortcut_bgr.png, src/game.cpp, - src/gui/gui.cpp, src/gui/itemcontainer.cpp, - src/gui/itemshortcutcontainer.cpp, src/gui/itemshortcutcontainer.h, - src/gui/itemshortcutwindow.cpp, src/gui/itemshortcutwindow.h, - src/gui/menuwindow.cpp, src/gui/setup_keyboard.cpp, src/gui/window.h, - src/itemshortcut.cpp, src/itemshortcut.h, src/keyboardconfig.cpp, - src/keyboardconfig.h, src/localplayer.cpp, src/localplayer.h, - src/main.cpp, src/net/inventoryhandler.cpp, src/utils/tostring.h, - tmw.cbp: Added item shortcut bar. - -2007-08-20 Joshua Langley - - * data/graphics/gui/mouse.png, src/gui/equipmentwindow.cpp, - src/gui/gui.cpp, src/gui/gui.h, src/gui/inventorywindow.cpp, - src/gui/setup.cpp, src/gui/skill.cpp, src/gui/skill.h, - src/gui/status.cpp, src/gui/window.cpp, src/gui/window.h, - data/graphics/gui/close_button.png: Added close button functionality, - resize cursor cues. - * data/graphics/gui/hits_yellow.png, src/being.cpp, src/being.h, - src/gui/gui.cpp, src/localplayer.cpp, src/localplayer.h, - src/net/charserverhandler.cpp, src/net/playerhandler.cpp, - src/particle.cpp, src/particle.h: Added monster killed xp notification - effect. - -2007-08-19 Bjørn Lindeijer - - * data/equipment.xml: Fixed typo in female light plate mail. - * NEWS: Updated with changes since 0.0.23. - -2007-08-19 Joshua Langley - - * src/keyboardconfig.cpp, src/keyboardconfig.h: Minor cleanup. - * src/gui/buy.cpp, src/gui/sell.cpp: Buy/sell fixed minimum quantity. - * src/gui/setup_keyboard.cpp, src/gui/setup_keyboard.h: Fixed bug - - reverts unassigned key. - -2007-08-17 Bjørn Lindeijer - - * tools/adler32.c: Added little program for calculating adler32 - checksums of files. - * src/gui/setup_keyboard.cpp: Fixed compile issue related to array - bound not being an integer constant. - -2007-08-15 Philipp Sehmisch - - * data/graphics/sprites/npcs.png, data/graphics/sprites/npc.xml: - Added farmer NPC for woodland village. - -2007-08-14 Eugenio Favalli - - * src/gui/popupmenu.cpp, src/gui/viewport.cpp, src/gui/viewport.h, - tmw.cbp: Fixed popup menu requiring one more click after being used. - -2007-08-09 Philipp Sehmisch - - * data/graphics/sprites/chest-lightplatemail-male.png, - data/graphics/sprites/chest-lightplatemail-female.png, - data/graphics/items/armor-chest-lightplatemail.png, - data/graphics/tiles/woodland_indoor_x2.png: Gave the platemail - armor a blue tint. Looks less boring and makes recoloring through - hue shifting possible. - -2007-08-08 Philipp Sehmisch - - * data/graphics/particles/cookingfire.particle.xml, - data/graphics/particles/fireplace.particle.xml, - data/maps/new_20-1.tmx.gz: Added particle effects and music to the - woodland village indoor map. - * data/maps/new_19-1.tmx.gz: Added overlay effect and music to - woodland village outdoor map. - * data/maps/new_18-1.tmx.gz: Fixed some collision map errors and added - music and overlay effect to the surrounding of the woodland village. - -2007-08-07 Philipp Sehmisch - - * data/graphics/sprites/npcs.png: Added two new NPCs and gave some - of the older NPCs a makeover to look more like the style of the new - playerset. - * data/maps/new_20-1.tmx.gz: Corrected a few mapping errors in the - new woodland village. - * data/items.xml: Tweaked description and values of the scythe. - -2007-08-06 Guillaume Melquiond - - * src/Makefile.am, src/utils/strprintf.h, src/utils/strprintf.cpp: - Added a helper function for printf-formatting a (gettext) C string - into a dynamically-sized C++ string. - -2007-08-05 Philipp Sehmisch - - * data/graphics/tiles/woodland_indoor.png, - data/graphics/tiles/woodland_indoor_x2.png, - data/graphics/tiles/woodland_indoor_x3.png: Added woodland - village indoor tilesets. - * data/maps/new_20-1.tmx.gz: Added woodland village indoor map. - -2007-07-29 Björn Steinbrink - - * CMake/Modules/FindLibXml2.cmake, CMake/Modules/FindLibcurl.cmake, - src/CMakeLists.txt: Switch to upstream CMake modules for libxml2 and - curl. - -2007-07-27 Guillaume Melquiond - - * src/resources/image.cpp: Added support for subimages of subimages. - * src/gui/equipmentwindow.cpp, src/gui/button.cpp, src/gui/slider.cpp, - src/gui/widgets/resizegrip.cpp, src/gui/widgets/dropdown.cpp, - src/gui/progressbar.cpp, src/gui/browserbox.cpp, src/gui/gui.cpp, - src/gui/radiobutton.cpp, src/gui/textfield.cpp, src/gui/playerbox.cpp, - src/gui/itemcontainer.cpp, src/gui/checkbox.cpp, src/gui/minimap.cpp, - src/gui/scrollarea.cpp, src/gui/popupmenu.cpp: Removed useless yet - costly dynamic casts. - -2007-07-25 Joshua Langley - - * src/gui/setup.cpp, src/gui/setup_keyboard.cpp, - src/gui/setup_keyboard.h, src/keyboardconfig.cpp, - src/keyboardconfig.h, src/main.cpp: Minor changes to keyboard config, - keyboard setup gui re-designed. - -2007-07-24 Bjørn Lindeijer - - * src/CMakeLists.txt, src/Makefile.am: Added setup_keyboard.* and - keyboardconfig.* to the list of source files. - * src/keyboardconfig.h: Fixed initialization order. - -2007-07-17 Joshua Langley - - * src/game.cpp: Only one key per function. - * src/main.cpp: Keyboard configuration included. - * src/gui/button.cpp, src/gui/button.h: Default constructor and - init function added. - * src/gui/setup.cpp: Keyboard setup tab added. - * src/gui/setup_keyboard.cpp, src/gui/setup_keyboard.h: Add to project - file, it is the keyboard setup tab. - * src/keyboardconfig.cpp, src/keyboardconfig.h: Add to project file, - the main keyboard config operations. - -2007-07-16 Eugenio Favalli - - * data/items.xml: Fixed description of silk headband. - -2007-07-11 Philipp Sehmisch - - * src/resources/monsterdb.cpp, src/resources/monsterinfo.cpp, - src/resources/monsterinfo.h, src/monster.cpp: Renamed SoundEvent - to MonsterSoundEvent. - * src/resources/equipmentdb.cpp, src/resources/equipmentinfo.cpp, - src/resources/equipmentinfo.h: EquipmentDB now holds the type of - attack animation and the sounds of weapons. - * src/being.cpp. src/being.h, src/localplayer.cpp, - src/net/beinghandler.cpp, src/net/charserverhandler.cpp, - src/net/equipmenthandler.cpp, src/player.cpp, src/player.h: The - type of weapon player characters are using is now set using - setVisibleEquipment() instead of setWeapon() or setWeaponById(). - * src/CMakeLists.txt, src/Makefile.AM, tmw.cbp, The Mana World.dev: - Updated project files and buildscripts. - * data/graphics/images/login-wallpaper.png: Replaced login wallpaper - with a new one by Irukard. - -2007-07-11 Bjørn Lindeijer - - * src/gui/window.cpp: Fixed resizing windows by their resize grip. - -2007-07-07 Bjørn Lindeijer - - * src/gui/gui.cpp, src/gui/chatinput.h, src/gui/chatinput.cpp, - INSTALL: Ported to Guichan 0.7.0. Unfortunately, since Guichan 0.6.x - didn't have a FocusListener, compatibility with older versions is - broken. - -2007-06-29 Philipp Sehmisch - - * src/particle.cpp, src/particleemitter.cpp: Corrected some perspective - issues of the particle engine and fixed a crash caused by particles - with child emitters that have an image than isn't used elsewhere. - * data/maps/new-3-1.tmx.gz: Added a particle effect at the spawn point - in Tulimshar. - -2007-06-21 Philipp Sehmisch - - * data/monsters.xml, data/graphics/sprites/monster-logmonster.png, - data/graphics/sprites/monster-logmonster.xml: Added logmonster by - Enigmatik (Monster ID is 23). - * data/items.xml, data/equipment.xml, - data/graphics/items/armor-chest-lightplatemail.png, - data/graphics/sprites/chest-lightplatemail-male.xml, - data/graphics/sprites/chest-lightplatemail-male.png, - data/graphics/sprites/chest-lightplatemail-female.png, - data/graphics/sprites/chest-lightplatemail-female.xml: - Added light platemail (see entry in items.xml for proposed specs). - -2007-06-16 Guillaume Melquiond - - * src/resources/image.cpp: Set GL texture index to zero when an image - uses the SDL backend. - -2007-06-13 Philipp Sehmisch - - * The Mana World.dev: Updated DevCpp project file. - -2007-06-13 Philipp Sehmisch - - * src/main.cpp: Added logging of version number. - -2007-06-12 David Athay - - * src/net/playerhandler.cpp: Fixed bug with DEF_BONUS not updating - Mantis id: 0000087 - * data/icons/The Mana World.icns: Added Mac OSX icon. - -2007-06-11 Philipp Sehmisch - - * src/particle.h, src/being.cpp: Fixed a bug that prevented - being-controlled particles from being deleted (thanks to tuchs for - reporting). - -2007-06-06 Bjørn Lindeijer - - * data/items.xml: Fixed defense of silk headband. - -2007-06-04 Philipp Sehmisch - - * data/graphics/maps/new_17-1.tmx.gz: Changed the minimap image of the - lamp snake cave to the correct one. - -2007-06-03 David Athay - - * src/main.cpp, src/game.cpp: Fixed screenshot taking on OSX. - -2007-06-03 Bjørn Lindeijer - - * src/CMakeLists.txt, src/Makefile.am, docs/Makefile.am: Added some - files to be included with the release. - * src/utils/fastsqrt.h: Fixed warning about strict-aliasing rules. - * src/Makefile.am: Don't die on warnings by default. - * src/resources/image.cpp: Fixed image loading in software mode to not - check for alpha layer when images aren't 32-bit. - * src/graphics.cpp, src/graphics.h, src/imageparticle.cpp: Removed - drawImageTransparent from Graphics class, should be set on image. - * src/imageparticle.h, src/particleemitter.h, src/particle.h, - src/particleemitter.cpp, src/particle.cpp, src/imageparticle.cpp: Have - ParticleEmitter load a possible particle image early on and don't - cause a crash when the image can't be found. - -2007-06-02 Bjørn Lindeijer - - * src/winver.h, README, NEWS, CMakeLists.txt, configure.ac, - data/help/changes.txt, data/help/header.txt: Updated version and - release date and summarized changes. - * src/gui/chat.h, src/gui/chat.cpp: Changed color of chat messages in - OpenGL mode from orange to black. - * src/gui/sell.cpp, src/gui/buy.h, src/gui/buy.cpp, src/gui/sell.h: - Some cleanup of buy/sell dialog code. - -2007-06-01 Bjørn Lindeijer - - * data/graphics/gui/CMakeLists.txt, data/graphics/gui/Makefile.am: - Added target cursors to installed files. - -2007-05-31 Philipp Sehmisch - - * data/maps/new_16-1.tmx.gz: Fixed an inconsistency with the neighbor - map (no new walkmap required). - -2007-05-23 Bjørn Lindeijer - - * src/gui/sell.cpp, src/gui/buy.cpp, src/being.cpp: A bunch of - lingering syntactical changes. - * src/gui/viewport.cpp: Added a missing include and fixed a bug with - cleaning up target cursor animations. - -2007-05-23 Philipp Sehmisch - - * src/gui/viewport.cpp, - data/graphics/gui/target-cursor-blue-s.png, - data/graphics/gui/target-cursor-blue-m.png, - data/graphics/gui/target-cursor-blue-l.png, - data/graphics/gui/target-cursor-red-s.png, - data/graphics/gui/target-cursor-red-m.png, - data/graphics/gui/target-cursor-red-l.png: Replaced target cursor - graphics with higher quality ones by Pauan. - * src/particle.cpp: Made bouncing particles immune against death by - ground contact and removed a nonsensical debugging log message. Made - text splash effects fade out. - * src/textparticle.cpp: Implemented fading in and out for text - particles. - * src/being.cpp, src/particle.cpp, src/particle.h, - src/textparticle.cpp, src/textparticle.h: The color values of text - particles are now stored in 3 integers instead of a Guichan color - structure. - -2007-05-20 Eugenio Favalli - - * tmw.cbp: Updated Code::Blocks project file. - -2007-05-20 Philipp Sehmisch - - * src/gui/buy.cpp, src/gui/sell.cpp: Unified some differences between - buy and sell dialog. Money label now shows money after transaction - instead of current money. - * src/gui/sell.cpp: Fixed the amount-not-reset-when-using-scrollwheel - bug. - * src/being.h, src/gui/viewport.cpp, src/gui/viewport.h: Added 3 - different target cursor sizes. - * src/monster.h, src/monster.cpp, src/resources/monsterdb.cpp, - scr/resources/monsterinfo.h, data/monsters.xml: Target cursor size for - monster is read from the monsters.xml. - * data/graphics/gui/target-cursor-blue-s.png, - data/graphics/gui/target-cursor-blue-m.png, - data/graphics/gui/target-cursor-blue-l.png, - data/graphics/gui/target-cursor-red-s.png, - data/graphics/gui/target-cursor-red-m.png, - data/graphics/gui/target-cursor-red-l.png: Added temporary - placeholders for small and large target cursors until better versions - based on the original SVG are available. - -2007-05-08 Philipp Sehmisch - - * data/graphics/sprites/monster-bat.png, - data/graphics/sprites/monster-bat.xml, - data/graphics/sprites/monster-flower.xml, - data/graphics/sprites/monster-fluffy.xml, - data/graphics/sprites/monster-fluffy.png, - data/graphics/sprites/monster-goblin-fire.xml, - data/graphics/sprites/monster-maggot-giant.xml, - data/graphics/sprites/monster-maggot.xml, - data/graphics/sprites/monster-mountsnake.xml, - data/graphics/sprites/monster-mushroom-red.xml, - data/graphics/sprites/monster-mushroom-spiky.xml, - data/graphics/sprites/monster-pinkie.xml, - data/graphics/sprites/monster-scorpion-black.xml, - data/graphics/sprites/monster-scorpion-red.png, - data/graphics/sprites/monster-scorpion-red.xml, - data/graphics/sprites/monster-skull-poison.xml, - data/graphics/sprites/monster-slime-green.xml, - data/graphics/sprites/monster-slime-red.xml, - data/graphics/sprites/monster-slime-rudolph.xml, - data/graphics/sprites/monster-slime-santa.png, - data/graphics/sprites/monster-slime-santa.xml, - data/graphics/sprites/monster-slime-yellow.xml, - data/graphics/sprites/monster-snake-cave.png, - data/graphics/sprites/monster-snake-cave.xml, - data/graphics/sprites/monster-snake.xml, - data/graphics/sprites/monster-spider.xml: - Adjusted offsets of monster sprites (thanks to Pauan for finding out - the correct offsets - I just subtracted 6 of all x offsets to take the - new position of the target circle in account) and committed some - modifications at some monster graphics by Pauan. - -2007-05-02 Philipp Sehmisch - - * src/sprite.h, src/being.cpp, src/being.h, src/animatedsprite.cpp, - src/animatedsprite.h: Added methods to get the width and height of the - graphical representation of a sprite. - * src/gui/viewport.cpp: Fixed positioning of monster names and target - circles. - -2007-05-02 Philipp Sehmisch - - * src/particle.cpp: Fixed a compiler warning. - -2007-05-02 Björn Steinbrink - - * src/Makefile.am: Add the new particle subclasses to the automake - configuration. - * src/imageparticle.h, src/textparticle.h, src/particle.h, - src/animationparticle.h, src/CMakeLists.txt, src/particleemitter.cpp, - src/animationparticle.cpp, src/particle.cpp, src/imageparticle.cpp, - src/textparticle.cpp, src/utils/xml.cpp, src/utils/xml.h: Split the - particle class into subclasses based on their appearance. - -2007-04-24 Philipp Sehmisch - - * src/particle.cpp, src/particle.h: Some minor code cleanups, speed - optimizations and a bit of documentation. - -2007-04-23 Philipp Sehmisch - - * data/graphics/particles/flame.particle.xml, - data/graphics/particles/blaze.png: Added two files I forgot with the - last commit. - * src/resources/mapreader.cpp, src/particle.cpp, - src/particleemitter.cpp: Using XML child node iteration macro. - -2007-04-22 Björn Steinbrink - - * src/configuration.cpp, src/utils/xml.h, src/resources/mapreader.cpp, - src/resources/spritedef.cpp, src/resources/monsterdb.cpp, - src/resources/itemdb.cpp, src/resources/equipmentdb.cpp: Added a macro - for XML child node iterations to make the code more terse and easier - to read. - * src/resources/itemdb.cpp: Made the parameter checks more terse and - manageable. - -2007-04-19 Philipp Sehmisch - - * src/resources/mapreader.cpp: Emitter positions are now read from map - files. - * src/engine.cpp: Removed the player follow effect used for testing. - * data/maps/new_4-1.tmx.gz, data/maps/new_5-1.tmx.gz: Added flame - effect to all lamps on the cave maps - * data/maps/new_9-1.tmx.gz: Added waterfall effect to the upper right - corner of NW woodland map. - -2007-04-15 Bjørn Lindeijer - - * src/openglgraphics.cpp: Rely on default 0 value for z axis. - * src/CMakeLists.txt, src/gui/window.cpp, src/gui/widgets, - src/gui/widgets/resizegrip.cpp, src/gui/widgets/resizegrip.h, - src/gui/inventorywindow.cpp, src/gui/window.h, src/Makefile.am: - Reimplemented window resizing. It is now once again possible to resize - windows using their borders (except for the top one, since that's the - title bar for Guichan) and the resize grip in the bottom right is much - easier to grab. - * src/gui/window.cpp: Increased minimum window height and fixed a - problem with setting window content size which was introduced with the - new resize grip. - -2007-04-13 Björn Steinbrink - - * data/graphics/gui/CMakeLists.txt: Added target cursor graphics to - the set of files to be installed. - -2007-03-25 Philipp Sehmisch - - * src/particle.cpp, src/particle.h, src/particleemitter.cpp, - src/particleemitter.h: Improved programming style and documentation - and added some small tweaks. - * src/engine.cpp, src/map.cpp, src/map.h, src/resources/mapreader.cpp: - Prepared getting the emitter positions from the map file by storing - them in the Map class and setting them up from the MapReader. - -2007-03-22 Philipp Sehmisch - - * src/simpleanimation.cpp, src/simpleanimation.h: Added new - constructor for simple animation that allows to build the animation - based on an xmlNodePtr pointing to an node. - * src/particle.cpp, src/particle.h: Added support for and - childtags for effect root particles. - * data/graphics/particles/playerglow.particle.xml: New player follow - effect that demonstrates an animated root particle with an emitter. - -2007-04-05 Eugenio Favalli - - * src/main.cpp: Unified storage of configuration, updates and - screenshots in home directory. - -2007-04-03 Philipp Sehmisch - - * data/graphics/items/generic-easteregg-blue.png, - data/graphics/items/generic-easteregg-green.png, - data/graphics/items/generic-easteregg-pink.png, - data/graphics/items/generic-easteregg-red.png, - data/graphics/items/generic-easteregg-teal.png, - data/graphics/items/generic-easteregg-yellow.png, - data/items.xml: Added six different easter egg item graphics for the - easter event. Item IDs are 1208 - 1213. - * data/graphics/sprites/npcs.png: Added bunny girl npc for the easter - event. - -2007-04-01 Philipp Sehmisch - - * src/game.cpp: Screenshots are no longer saved directly in the users - home directory on UNIX systems but in the sub folder /.tmw/. A chatlog - message about the success of the screenshot saving does appear now. - Based on a patch by Patrick "the-me" Matthäi. - -2007-03-27 Bjørn Lindeijer - - * src/main.cpp: Icon loading doesn't necessarily succeed, so better - not crash when it doesn't. - -2007-03-24 Bjørn Lindeijer - - * src/main.cpp: Changed the order of network message handling and - logic, in order to prevent an incoming character delete message from - deleting the player character that was about to be drawn. - * src/gui/char_select.cpp: Removed useless lock/unlock calls. - * src/logindata.h, src/main.cpp, src/gui/login.cpp: Go back to login - or register state on error, depending on what the user was doing. - * src/gui/register.cpp: Actually use the server that is filled in. - * src/net/loginhandler.cpp: Fixed error message. - * src/net/charserverhandler.cpp: Fixed crash since now logic is called - after non-selected characters are deleted, by properly setting deleted - instances to 0 and going back to initial selection. - * src/main.cpp, src/net/network.h, src/net/network.cpp: Make sure that - when a network error occurs, the error message is available and shown - to the user. - * src/gui/register.h, src/gui/register.cpp: Only enable Register - button when all necessary fields are filled in. - -2007-03-23 Bjørn Lindeijer - - * src/gui/char_select.cpp, src/gui/char_select.h, - src/net/charserverhandler.h, src/net/charserverhandler.cpp: Clarified - the error message when character creation fails and made sure the - character creation dialog doesn't close when creation failed. - -2007-03-22 Bjørn Lindeijer - - * src/gui/login.cpp, src/gui/login.h, src/gui/register.h, - src/gui/register.cpp: Only enable login button when a username, - password and server are filled in. Pass username, password and server - on to the register dialog. Go back to login dialog when canceling - registration. Fixed a crash caused by deleting an OkDialog twice (it - also deletes itself). Made the register dialog a bit wider. Register - dialog no longer clears username field when it is invalid. - * src/main.cpp, data/icons/CMakeLists.txt, data/icons/Makefile.am, - data/icons/tmw-32x32.png: Use a 32x32 non-alpha layered window icon. - * tmw.cbp: Updated project file. - * data/icons/CMakeLists.txt, data/icons/Makefile.am, src/main.cpp, - data/icons/tmw-32x32.png: Removed 32x32 non-alpha layered window icon - again, and instead used the icon in the executable on Windows. - -2007-03-21 Bjørn Lindeijer - - * src/main.cpp, src/gui/viewport.cpp, src/resources/image.h, - src/resources/image.cpp: Reduced amount of useless logging, calculate - nearest power of two in a function and only do the alpha check in - software mode. - * src/gui/login.cpp: Fixed small issue where default server didn't fit - in the server entry field properly. - * src/main.cpp: Display a progress bar and connecting status for each - server and display the version using a gcn::Label. - * src/gui/viewport.cpp, src/monster.h: Avoiding magic numbers where - possible (1002) and also display the target when other players are - targeted. - * src/floor_item.cpp, src/being.cpp, src/main.cpp, src/CMakeLists.txt, - src/gui/equipmentwindow.cpp, src/gui/viewport.cpp, - src/gui/itemcontainer.cpp, src/gui/viewport.h, src/engine.cpp, - src/animatedsprite.cpp, src/tileset.h, src/npc.cpp, src/Makefile.am, - src/being.h, src/resources/imageset.cpp, src/resources/animation.h, - src/resources/spritedef.cpp, src/resources/resourcemanager.h, - src/resources/spriteset.h, src/resources/imageset.h, - src/resources/resourcemanager.cpp, src/resources/spriteset.cpp, - src/resources/spritedef.h: Renamed Spriteset to ImageSet. - -2007-03-20 Philipp Sehmisch - - * src/gui/updatewindow.cpp: Cancel button is now disabled after - downloading is finished. - -2007-03-20 David Athay - - * src/gui/viewport.cpp: Fixed target cursor animation, and changed - which layer it is drawn after. - * src/gui/viewport.cpp, src/gui/viewport.h: Split drawing the target - cursor and target name into functions. - -2007-03-20 Philipp Sehmisch - - * data/graphics/gui/mouse.png: Positioned the cursor image more - accurate. - -2007-03-19 David Athay - - * src/localplayer.cpp, src/gui/viewport.cpp, src/gui/viewport.h, - src/net/equipmenthandler.cpp, src/localplayer.h, - src/net/protocol.h: Added target cursor. - -2007-03-18 Bjørn Lindeijer - - * docs/Makefile.am, docs/tmw.6: Added man page by Patrick Matthäi. - * src/resources/image.cpp: Restored alpha layer check, since it should - be more efficient in software mode when SDL knows an image doesn't use - the alpha layer. - * data/graphics/gui/thickborder.png, - data/graphics/gui/vscroll_grey.png, data/graphics/gui/slider.png, - data/graphics/gui/vscroll_blue.png, data/graphics/gui/vscroll_red.png, - data/graphics/gui/deepbox.png, - data/graphics/sprites/monster-slime-red.png, - data/graphics/sprites/monster-scorpion-black.png, - data/graphics/sprites/monster-scorpion.png, - data/graphics/sprites/monster-slime-rudolph.png, - data/graphics/sprites/monster-snake.png, - data/graphics/sprites/monster-slime-santa.png, - data/graphics/sprites/monster-maggot.png, - data/graphics/sprites/monster-spider.png, - data/graphics/sprites/monster-scorpion-red.png, - data/graphics/sprites/monster-slime-yellow.png, - data/graphics/sprites/monster-slime-green.png, - data/graphics/sprites/monster-maggot-giant.png: Replaced pink pixels - with transparent ones. - -2007-03-18 Rogier Polak - - * src/main.cpp: Added (-v) version to the arguments. (Applied a patch - by Patrick Matthäi). - * src/resources/image.cpp: Deleted the "pink code", which added - transparancy with SDL_SetColorKey. - -2007-03-18 Bjørn Lindeijer - - * icons/tmw.ico, icons/tmw.png, icons/tmw.xpm: Replaced icons with the - green globe that is also used on the website. - -2007-03-14 Bjørn Lindeijer - - * src/main.cpp, src/tmw.rc, data/icons/tmw-icon.png, - data/icons/tmw-icon.xpm, data/icons/tmw.ico, data/icons/tmw-icon.ico, - data/icons/Makefile.am, data/icons/tmw.png, data/icons/tmw.xpm, - data/icons/CMakeLists.txt: Renamed icons to make things easier for - Debian packaging, and the "-icon" part was superfluous anyway. - -2007-03-12 Philipp Sehmisch - - * src/simpleanimation.cpp, src/simpleanimation.h, src/CmakeLists.txt, - src/Makefile.am: Added a simple animation class that hosts a looping - animation without the action and direction stuff from AnimatedSprite. - * src/particle.cpp, src/particle.h, src/particleemitter.cpp: Used said - simple animation class for animated particles. - -2007-03-12 Bjørn Lindeijer - - * data/graphics/items/armor-head-rangerhat.png: New version of ranger - hat icon by Pauan. - -2007-03-11 Philipp Sehmisch - - * src/map.cpp, src/gui/viewport.cpp: Fixed a bug that made the engine - not draw the last row and column of the map. - -2007-03-09 Philipp Sehmisch - - * src/particle.cpp: Reimplemented physics mode that uses the default - square root function as fallback for systems where the fastInvSqrt - function doesn't work properly. - * src/particle.cpp, src/particle.h: Some performance optimizations - suggested by Rogier "Avaniel" Polak. - -2007-03-09 Bjørn Lindeijer - - * data/graphics/gui/target-cursor-blue.png, - data/graphics/gui/target-cursor-red.png: Added targeting cursors by - Pauan. - * data/graphics/sprites/chest-cotton-male.png, - data/graphics/sprites/chest-cotton-female.png: Replaced cotton shirt - with improved version by Pauan. - -2007-02-27 Philipp Sehmisch - - * gui/button.cpp, src/guibutton.h, - src/gui/tabbedcontainer.cpp, src/gui/tabbedcontainer.h:: Tabbed - containers now display the button of the active tab pressed all - the time. - -2007-02-26 Bjørn Lindeijer - - * configure.ac: Made OpenGL enabled by default. - -2007-02-26 Philipp Sehmisch - - * data/sfx/maggot-dying1.ogg, data/sfx/maggot-hit1.ogg, - data/sfx/maggot-hit2.ogg, data/sfx/maggot-miss1.ogg, - data/sfx/pinkie-hit1.ogg, data/sfx/pinkie-miss1.ogg, - data/monsters.xml: New sound effects by Cosmostrator. - -2007-02-25 Philipp Sehmisch - - * src/particle.h, src/particleemitter.h: Just some documentation work. - -2007-02-22 Philipp Sehmisch - - * src/particle.cpp, src/particle.h, src/particleemitter.cpp, - src/particleemitter.h: Added new particle property "bounce" that makes - particles bounce off the ground and use it with the damage numbers. - - -2007-02-21 Philipp Sehmisch - - * src/gui/char-server.cpp, src/gui/updatewindow.cpp, src/gui/main.cpp, - src/gui/main.h: Added a new state "LOADDATA_STATE" that loads the XML - databases. - * src/resourcemanager.cpp, src/resourcemanager.h, src/main.cpp, - customdata/: Added a customdata dir that allows to add custom user - data easily. Just create a zip file with the same structure like the - update archives and drop it in the customdata folder and the files in - it override the default data and the updates. - -2007-02-15 Philipp Sehmisch - - * src/engine.cpp: The name conflict problem with Guichan seems to be - solved with version 0.6.1. - * src/particle.cpp, src/particle.h, src/particleemitter.cpp, - src/particleemitter.h: Added support for animated particles. - * data/graphics/particles/playerglow.particle.xml: Created a new - player follow particle that spawns a swarm of animated bats that - follow the player. - -2007-02-09 Philipp Sehmisch - - * src/particle.cpp: Fixed a misspelled include and another - optimisation at the vector calculation. - -2007-02-08 Philipp Sehmisch - - * src/particle.cpp, src/utils/fastsqrt.h: Added a faster function to - calculate square roots and using it for hypotenuse calculations. - Thanks to Rogier aka Avaniel for finding the function. - -2007-02-07 Philipp Sehmisch - - * src/particle.cpp, src/particle.h, src/particleemitter.cpp: Renamed - Particle::MAX_PARTICLES to Particle::maxCount and read the value from - config ("particleMaxCount") - * src/particle.cpp: Added fast physics mode that replaces the - trigonometric calculations made for calculating the acceleration by - much less cpu intense but also less accurate formulas. To enable it - set the config option "particleFastPhysics" to "1". - * src/particle.cpp: Added the config option "particleEmitterSkip" that - allows to reduces the output of the emitters by making them spawn - particles only every n-th game tick. - * src/graphics.cpp, src/graphics.h: Added a new method - "drawImageTransparent" to the graphic engine that blits an image with - an alpha factor. - * src/particle.cpp: Using new drawImageTransparent method. - -2007-02-01 Philipp Sehmisch - - * src/particle.cpp, src/particle.h, src/particleemitter.cpp, - src/particleemitter.h: Implemented die-distance (particles are deleted - when they reached a certain proximity to their target) - * src/particle.cpp: Fixed a bug in the acceleration vector calculation. - * src/particle.cpp, src/particle.h: Fixed a problem with particles with - unlimited lifetime and fade-in. - * data/graphics/particles/playerglow.particle.xml: And again a new - player follow particle. This time it demonstrates die-distance and the - fixed acceleration vector calculation. - * src/engine.cpp, data/graphics/particles/snow.particle.xml, - data/graphics/particles/snowflake.png: I can't stand the begging - anymore. Now it snows in the snow area... and the forest... and the - desert... and under the earth... and indoors... Are you happy now, - Rotonen and Elven? ;-) - * src/particle.cpp: Removed some debug log messages. - * src/being.cpp: Avoided crash when attempting to control an invalid - particle. - * src/particle.cpp, src/particle.h, src/particleemitter.cpp, - src/particleemitter.h: Cleaned the includes up. - -2007-01-31 Philipp Sehmisch - - * src/particle.cpp, src/particle.h, src/particleemitter.cpp, - src/particleemitter.h: Changed some variable names. - * data/graphics/particles/waterfall.particle.xml, - data/graphics/particles/waterfall-a.png: New waterfall with Modanungs - waterfall particle. - * src/particle.cpp: forgot to remove a svn conflict marker and changed - the order of initialisations to fix some compiler warnings. - -2007-01-30 Eugenio Favalli - - * tmw.cbp: Updated Code::blocks project file. - -2007-01-30 Philipp Sehmisch - - * src/net/beinghandler.cpp, - data/graphics/particles/skillup.particle.xml: Added different particle - effect for job levelup. - * src/particle.cpp, src/particle.h, src/particleemitter.cpp, - src/particleemitter.h: Renamed "alphafade" to "fade-out", added new - property "fade-in". - * data/graphics/particles/playerglow.particle.xml: Added a new player - effect (a fire) demonstrating how to use fade-in and fade-out to fade - one color into another. - -2007-01-29 Philipp Sehmisch - - * src/particle.cpp, src/particle.h, src/particleemitter.cpp, - src/particleemitter.h: Added a new particle property "alphafade" that - makes the particles fade into alpha before their lifetime ends. - * src/particle.cpp, src/particle.h: fixed an issue with particles that - have a lifetime of 0 and an issue with the momentum property. - * data/graphics/particles/waterfall.particle.xml, - data/graphics/particles/fog-medium-white-a.png, - data/graphics/particles/fog-medium-white-b.png, - data/graphics/particles/fog-medium-white-c.png: Added fog to the - waterfall effect demonstrating the new alphafade feature. - -2007-01-28 Philipp Sehmisch - - * src/utils/xml.cpp, src/utils/xml.h, src/particleemitter.cpp: Most - values are now read as floating point values from the emitter files. - * data/graphics/particles/fountain.particle.xml, - data/graphics/particles/hit.particle.xml, - data/graphics/particles/playerglow.particle.xml: Changed some values - as floating point values. Made the player follow effect magenta to - improve the visibility of the hit effects. - * src/engine.cpp, data/graphics/particles/waterfall.particle.xml: - Removed the fountain and added a waterfall instead. - * src/particle.h: Corrected the drawing order of the particles in - relation to the other sprites. - * src/gui/debugwindow.cpp, src/gui/debugwindow.h: Added particle count - to debug window. - * src/particle.cpp: Allowed momentum without acceleration and - implement the acceleration properly. - * src/utils/minmax.h, src/particleemitter.cpp, src/particleemitter.h: - Added a structure to hold a pair of numeric minimum and maximum values - and used it to store all numeric emitter properties. - * src/utils/randbetween.h: Removed (the functionality is now in struct - MinMax) - -2007-01-27 Bjørn Lindeijer - - * src/gui/shoplistbox.cpp: Fixed compilation against Guichan 0.6.1. - * src/utils/randbetween.h: Fixed integer overflow causing the - randBetween function not to work properly on Linux. - -2007-01-27 Philipp Sehmisch - - * src/net/beinghandler.cpp: Fixed a compiler issue. - -2007-01-27 Philipp Sehmisch - * src/particle.cpp, src/particle.h, src/particleemitter.cpp, - src/particleemitter.h, src/engine.cpp: Emitter data is read from - external xml files. Reimplemented target-based particles with the - difference that they don't target beings or locations but other - particles (at the moment the host particle of the effect). - * src/being.cpp: Beings now move controlled particles to their center - instead of their upper left corner. - * data/graphics/particles/orb*: Added a bunch of new particles. - * data/graphics/particles/fountain.particle.xml: Reimplementation of - the fountain effect in XML. - * data/graphics/particles/playerglow.particle.xml: New effect that - spawns orbs that orbit around the origin. - * src/being.cpp, data/graphics/particles/hit.particle.xml: Added - particle effect on hit. - * src/net/beinghandler.cpp, - data/graphics/particles/levelup.particle.xml: Added particle effect on - levelup (own or other player). - -2007-01-24 Philipp Sehmisch - - * src/particle.cpp: Initialized all variables of the particles in the - constructor. - * src/particleemitter.cpp, src/particleemitter.h: minor cleanups. - -2007-01-22 Philipp Sehmisch - - * src/being.cpp, src/being.h, src/particle.cpp, src/particle.h - src/particleemitter.cpp, src/particleemitter.h, src/engine.cpp: - Particle effects are now created in child particles of the root - particle. Particle emitters have no longer a being they check every - frame. Instead beings have the ability to take control of particles. - -2007-01-19 Philipp Sehmisch - - * src/particle.cpp, src/particle.h, src/particleemitter.cpp, - src/particleemitter.h: Implemented emitters that follow a being. - * src/engine.cpp: Added an emitter that follows the local player. - * src/particle.cpp: Fixed the crash on exit (reason was that the - mSpriteIterator wasn't initialized in every case) - -2007-01-18 Bjørn Lindeijer - - * src/particle.h, src/particle.cpp, src/CMakeLists.txt, - src/Makefile.am: Fixed compilation issues on Linux. - -2007-01-15 Philipp Sehmisch - - * src/game.cpp, src/particle.cpp, src/particle.h, - src/particleemitter.h: Made the particle count global and more - performant. - -2007-01-14 Bjørn Lindeijer - - * src/game.cpp, src/main.cpp, src/gui/trade.cpp, src/gui/sell.cpp, - src/gui/connection.cpp, src/gui/buddywindow.cpp, src/gui/browserbox.h, - src/gui/char_server.cpp, src/gui/window.cpp, src/gui/login.cpp, - src/gui/inttextbox.h, src/gui/viewport.cpp, src/gui/button.h, - src/gui/shoplistbox.h, src/gui/skill.h, src/gui/item_amount.h, - src/gui/setup_audio.h, src/gui/newskill.cpp, src/gui/listbox.h, - src/gui/register.h, src/gui/setup.cpp, src/gui/npclistdialog.h, - src/gui/updatewindow.cpp, src/gui/button.cpp, src/gui/char_select.cpp, - src/gui/login.h, src/gui/setup_audio.cpp, src/gui/item_amount.cpp, - src/gui/setup_joystick.h, src/gui/chat.h, src/gui/npc_text.cpp, - src/gui/setup_video.cpp, src/gui/ok_dialog.cpp, - src/gui/inventorywindow.h, src/gui/gccontainer.cpp, - src/gui/newskill.h, src/gui/buy.h, src/gui/setup.h, - src/gui/itemcontainer.h, src/gui/confirm_dialog.cpp, - src/gui/debugwindow.cpp, src/gui/chat.cpp, src/gui/setup_joystick.cpp, - src/gui/updatewindow.h, src/gui/char_select.h, src/gui/buysell.h, - src/gui/tabbedcontainer.cpp, src/gui/inventorywindow.cpp, - src/gui/help.cpp, src/gui/status.h, src/gui/npc_text.h, - src/gui/setup_video.h, src/gui/menuwindow.cpp, src/gui/browserbox.cpp, - src/gui/ok_dialog.h, src/gui/buy.cpp, src/gui/itemcontainer.cpp, - src/gui/gccontainer.h, src/gui/buddywindow.h, src/gui/sell.h, - src/gui/trade.h, src/gui/inttextbox.cpp, src/gui/char_server.h, - src/gui/window.h, src/gui/shoplistbox.cpp, src/gui/skill.cpp, - src/gui/buysell.cpp, src/gui/confirm_dialog.h, src/gui/debugwindow.h, - src/gui/status.cpp, src/gui/listbox.cpp, src/gui/register.cpp, - src/gui/viewport.h, src/gui/tabbedcontainer.h, - src/gui/npclistdialog.cpp, src/gui/help.h, src/gui/chatinput.h, - src/gui/chatinput.cpp, src/net/tradehandler.cpp, - src/net/playerhandler.cpp: Upgraded to Guichan 0.6.0 (merge from - guichan-0.6.0 branch). - * src/winver.h, configure.ac, data/help/header.txt, NEWS, README, - CMakeLists.txt: Updated version to 0.0.22.1. - -2007-01-14 Philipp Sehmisch - - * src/particle.cpp, src/particle.h; src/particleemitter.cpp, - src/particleemitter.h, src/utils/randbetween.h: - Implemented particle engine. - * src/engine.cpp, src/game.cpp: added calls to the particle engine - * data/graphics/particles/*: added a bunch of particle graphics for - testing purpose. - * particleengine-todo.txt: Added particle engine todo list (please - omit when merging) - -2007-01-13 Bjørn Lindeijer - - * data/graphics/sprites/Makefile.am, - data/graphics/sprites/CMakeLists.txt: Updated with regard to renaming - of cotton equipment. - -2006-01-13 Eugenio Favalli - - * src/gui/debugwindow.cpp, src/gui/viewport.h: Fixed mouse coordinates - display in debug window. - -2007-01-12 Bjørn Lindeijer - - * src/gui/viewport.cpp: Fixed initialization of mPlayerFollowMouse, - the lack of which sometimes caused the player to start walking when - clicking on the GUI. - -2007-01-09 Philipp Sehmisch - - * data/graphics/icecave.png: Added new tiles and fixes by Nickman and - made some other cosmetical corrections. - -2007-01-07 Bjørn Lindeijer - - * data/graphics/sprites/monster-mountsnake.xml, - data/graphics/sprites/monster-mountsnake.png, data/monsters.xml: Added - brown snake by Pauan. - -2007-01-07 Philipp Sehmisch - - * data/graphics/chest-cottonshirt-male.png, - data/graphics/chest-cottonshirt-male.xml, - data/graphics/chest-cottonshirt-female.png, - data/graphics/chest-cottonshirt-female.xml, - data/graphics/item001.png, data/equipment.xml: Added female - cottonshirt sprites. - * data/equipment.xml: Fixed some wrong armor values. - -2007-01-05 Björn Steinbrink - - * src/CMakeLists.txt, data/graphics/images/ambient/Makefile.am, - data/graphics/sprites/CMakeLists.txt: Synchronized build files. - -2006-12-12 Eugenio Favalli - - * tools/Purger.java: Removed purger tool. - -2006-12-25 Bjørn Lindeijer - - * data/graphics/tiles/christmastree.png, data/maps/new_11-1.tmx.gz: - Added Christmas tree by Pauan. - * data/graphics/sprites/head-christmastree.xml: Fixed name of image. - * src/resources/spriteset.cpp: Fixed index check to prevent crashing. - * data/graphics/sprites/head-christmastreehat.png, - data/graphics/sprites/head-rangerhat.png, - data/graphics/sprites/head-christmastree.xml, - data/graphics/sprites/head-antlerhat.xml, - data/graphics/sprites/head-santabeardhat.xml, - data/graphics/sprites/head-santabeardhat.png, - data/graphics/sprites/head-rangerhat.xml: Updates to Pauan's recent - sprites by Pauan. - * data/items.xml: Fixes to descriptions and weights by Pauan. - -2006-12-24 Bjørn Lindeijer - - * src/gui/shoplistbox.cpp: Don't try to draw an icon when it is not - defined or failed to load properly. - * src/resources/image.cpp: Major rendering performance increase in - software mode, by not using RLE compression on loaded images while - most of the time, we're only drawing a small subimage of them. - * README, data/help/header.txt, NEWS: Filled in release dates. - -2006-12-23 Bjørn Lindeijer - - * configure.ac, data/graphics/items/Makefile.am, - data/graphics/items/CMakeLists.txt, data/graphics/images/Makefile.am, - data/graphics/images/CMakeLists.txt, - data/graphics/sprites/Makefile.am, - data/graphics/sprites/CMakeLists.txt, data/graphics/Makefile.am, - data/graphics/CMakeLists.txt, data/maps/Makefile.am, - data/maps/CMakeLists.txt, data/sfx/Makefile.am, - data/sfx/CMakeLists.txt, data/Makefile.am, data/CMakeLists.txt: - Removed database files, minimaps, items, monster sprites, maps and - sounds from the release. They will be released dynamically only. - * data/graphics/tiles/snow_x3.png: Added bottom of Christmas tree by - pauan. - * src/main.cpp, src/resources/itemdb.h, src/resources/monsterdb.cpp, - src/resources/itemdb.cpp, src/resources/equipmentdb.cpp: Load the - databases at the start of the LOGIN state, after the updates are - loaded. - -2006-12-22 Bjørn Lindeijer - - * data/graphics/items/armor-head-rangerhat.png, - data/graphics/items/generic-redstocking.png, - data/graphics/items/armor-head-christmastree.png, - data/graphics/items/armor-head-antlerhat.png, - data/graphics/items/armor-head-santabeardhat.png, - data/graphics/sprites/head-christmastreehat.png, - data/graphics/sprites/head-rangerhat.png, - data/graphics/sprites/head-christmastree.xml, - data/graphics/sprites/head-antlerhat.xml, - data/graphics/sprites/head-santabeardhat.xml, - data/graphics/sprites/head-antlerhat.png, - data/graphics/sprites/head-santabeardhat.png, - data/graphics/sprites/head-rangerhat.xml, data/items.xml, - data/equipment.xml, data/monsters.xml: Added new Christmas themed - headwear by Pauan. - * data/graphics/items/Makefile.am, data/graphics/items/CMakeLists.txt, - data/graphics/sprites/Makefile.am, - data/graphics/sprites/CMakeLists.txt, data/Makefile.am, - data/CMakeLists.txt: Updated Makefiles. - -2006-12-21 Bjørn Lindeijer - - * configure.ac, CMakeLists.txt, README, data/help/header.txt: Updated - version to 0.0.22. - -2006-12-18 Philipp Sehmisch - - * data/graphics/items/armor-chest-vnecksweater.png: New version of - the inventory icon for the V-neck sweater by Saphy. - -2006-12-17 Bjørn Lindeijer - - * src/gui/sell.cpp, src/gui/shoplistbox.h, src/gui/listbox.h, - src/gui/shop.cpp, src/gui/buy.cpp, src/gui/shoplistbox.cpp, - src/gui/listbox.cpp: Subclassed ShopListBox from ListBox to get rid of - some duplicated code, and fixed a problem with scrolling to the - current selection. Also aligned the text a bit better and put the - price in parenthesis. - -2006-12-16 Bjørn Lindeijer - - * src/gui/connection.cpp, src/gui/chargedialog.cpp: Fixed dialog - visibility. - * src/localplayer.cpp, src/game.cpp, src/localplayer.h: Fixed issues - with walking one tile too many and changing direction towards an - obstacle. - -2006-12-15 Philipp Sehmisch - - * data/graphics/tiles/desert1.png: Removed some unused legacy tiles and - added variant tiles for the cliffs. - -2006-12-14 Bjørn Lindeijer - - * src/game.cpp, src/engine.h, src/engine.cpp: Removed the rather - useless remaining draw function from the engine class. - * src/being.cpp, src/being.h: Fixed an issue with fading out damage - texts (they were sometimes fully opaque at the end of fading out). - -2006-12-12 Eugenio Favalli - - * The Mana World.dev, tmw.cbp: Updated project files. - * src/gui/updatewindow.cpp, src/gui/updatewindow.h, src/main.cpp: - Added Adler32 checksum for updates. - * src/net/playerhandler.cpp: Fixed crash when selecting an item after - death. - * data/items.xml: Fixed defense values for sweaters. - * src/net/playerhandler.cpp: Hide all NPC dialogs after death. - -2006-12-12 Bjørn Lindeijer - - * src/animatedsprite.h, src/CMakeLists.txt, src/animatedsprite.cpp, - src/resources/action.h, src/resources/animation.h, - src/resources/spritedef.cpp, src/resources/action.cpp, - src/resources/animation.cpp, src/resources/spritedef.h: Moved - Action, Animation and Frame (renamed from AnimationPhase) classes into - the resources directory, since they are part of the SpriteDef class. - * src/CMakeLists.txt, src/utils/base64.cpp, src/utils/base64.h, - src/Makefile.am, src/resources/mapreader.cpp: Moved base64 module into - utils directory. - * src/engine.cpp, src/npc.cpp: Cleaned up some unused stuff. - -2006-12-12 Philipp Sehmisch - - * data/sfx/bat-dying1.ogg, data/sfx/bat-hit1.ogg, - data/sfx/bow_shoot_1.ogg, data/sfx/fire-goblin-hit1.ogg - data/sfx/fire-goblin-hit2.ogg, data/sfx/fire-goblin-miss1.ogg, - data/sfx/fist-swish.ogg, data/sfx/flower-hit1.ogg, - data/sfx/flower-hit2.ogg, data/sfx/flower-miss1.ogg, - data/sfx/fluffy-hit1.ogg, data/sfx/fluffy-hit2.ogg, - data/sfx/fluffy-hit3.ogg, data/sfx/fluffy-hurt1.ogg, - data/sfx/fluffy-miss1.ogg, data/sfx/knife-hit1.ogg, - data/sfx/knife-miss1.ogg, data/sfx/levelup.ogg - data/sfx/scorpion-hit1.ogg, data/sfx/scorpion-hit2.ogg - data/sfx/scorpion-hit3.ogg, data/sfx/scorpion-hit4.ogg - data/sfx/scorpion-miss1.ogg, data/sfx/short-sword-hit1.ogg - data/sfx/short-sword-miss1.ogg, data/sfx/shroom-hit1.ogg - data/sfx/slime-hit1.ogg: - Normalized versions of sound effects by Cosmostrator. - -2006-12-11 Bjørn Lindeijer - - * src/gui/updatewindow.cpp: Fixed visibility of the update window. - -2006-12-11 Philipp Sehmisch - - * data/equipment.xml, data/items.xml, - data/graphics/sprites/chest-tnecksweater-male.png, - data/graphics/sprites/chest-tnecksweater-female.png, - data/graphics/sprites/chest-vnecksweater-male.png, - data/graphics/sprites/chest-vnecksweater-female.png, - data/graphics/sprites/chest-tnecksweater-male.xml, - data/graphics/sprites/chest-tnecksweater-female.xml, - data/graphics/sprites/chest-vnecksweater-male.xml, - data/graphics/sprites/chest-vnecksweater-female.xml, - data/graphics/sprites/Makefile.AM, - data/graphics/sprites/CMakeLists.txt, - data/graphics/items/armor-chest-vnecksweater.png, - data/graphics/items/armor-chest-tnecksweater.png, - data/graphics/items/armor-chest-woolsweater.png, - data/graphics/items/Makefile.AM, data/graphics/items/CMakeLists.txt: - Added new sweaters by Saphy. Info for server admins: Item IDs are 564 - for turtleneck (should already be in there) and 624 for v-neck. The - visible sprite IDs are 19 for turtleneck and 20 for v-neck. - -2006-12-11 Eugenio Favalli - - * src/main.h, src/tmw.rc, src/winver.h, The Mana World.dev, tmw.cbp: - Fixed windows binary version. - -2006-12-10 Eugenio Favalli - - * docs/INSTALL/win32.txt: Added more detailed instructions for Dev-C++ - users. - -2006-12-09 Eugenio Favalli - - * data/graphics/sprites/npcs.png: Added pirate NPC. - -2006-12-09 Bjørn Lindeijer - - * src/sprite.h, src/gui/playerbox.h, src/gui/char_select.cpp, - src/gui/playerbox.cpp, src/gui/passwordfield.h, src/gui/char_select.h, - src/main.cpp, src/being.cpp, src/player.h, src/floor_item.h, - src/being.h: Use new animation system in character selection/creation. - Shows equipment and allowed for some cleanup. Had a bit of help from - the patch by VictorSan. - -2006-12-08 Bjørn Lindeijer - - * src/base64.cpp, src/base64.h, src/resources/mapreader.cpp: - Downgraded to base64 codec from PHP 3 to resolve licensing issues. - -2006-12-06 Eugenio Favalli - - * The Mana World.dev, tmw.cbp: Updated project files. - -2006-12-06 Philipp Sehmisch - - * src/net/beinghandler.cpp: Fixed crashs when changing equipment. - * data/graphics/tiles/desert1.png, data/graphics/tiles/desert2.png: - More tiling related fixes at the cliffs. - -2006-12-06 Bjørn Lindeijer - - * src/gui/item_amount.cpp: Fixed visibility of item amount window. - -2006-12-05 Philipp Sehmisch - - * data/graphics/tiles/desert1.png: Improved the tiling behavior - of the cliffs (still not gridless but at least the edges fit - together in the most common situations) - -2006-12-04 Bjørn Lindeijer - - * src/game.cpp, src/engine.h, src/gui/windowcontainer.h, - src/gui/viewport.cpp, src/gui/gui.cpp, src/gui/gui.h, - src/gui/debugwindow.cpp, src/gui/inventorywindow.cpp, - src/gui/viewport.h, src/engine.cpp, src/CMakeLists.txt, - src/Makefile.am: Introduced a new class Viewport which combines the - drawing code from Engine with the (rather misplaced) input handling - from the Gui class. Also, it's a Container itself which should allow - for extending it to show Guichan widgets on map coordinates. - -2006-12-03 Bjørn Lindeijer - - * src/sound.cpp, src/monster.cpp, src/sound.h, - src/resources/soundeffect.cpp, src/resources/resourcemanager.cpp: - Don't try to play empty strings as sounds, and don't return a - SoundEffect instance when Mix_Chunk loading failed. - * src/beingmanager.cpp, src/npc.cpp, src/npc.h: Show NPC names. - * src/game.cpp, src/gui/char_server.cpp, src/gui/window.cpp, - src/gui/login.cpp, src/gui/char_select.cpp, src/gui/ok_dialog.cpp, - src/gui/confirm_dialog.cpp, src/gui/ok_dialog.h, src/gui/window.h, - src/gui/confirm_dialog.h, src/gui/register.cpp: Windows now default - to invisible, since this seems the most common case. - -2006-12-02 Philipp Sehmisch - - * data/graphics/sprites/chest-leather-female.png: A little correction - at the female leather shirt by mangamaniac. - -2006-12-01 Philipp Sehmisch - - * src/net/beinghandler.cpp, src/being.h, src/being.cpp, src/monster.h, - src/gui/gui.cpp: Visible equipment slot numbers are now converted by - the beinghandler from eAthena to our system. No more distinction - between monster attacking and player attacking between beinghandler - and the being classes. - * src/being.cpp, src/monster.cpp, src/being.h, src/monster.h: Moved - the monster specific action handling into the monster class. - * monster.cpp, mosterinfo.cpp, monsterinfo.h: Monsters now make sounds - when they attack, gett hurt or die. - * src/being.cpp: Delayed the damage numbers a bit to synchronize them - better with the hurt sounds. - * data/monsters.xml, data/sfx//bat-dying1.ogg, data/sfx/bat-hit1.ogg, - data/sfx/bow_shoot_1.ogg, data/sfx/fire-goblin-hit1.ogg, - data/sfx/fire-goblin-hit2.ogg, data/sfx/fire-goblin-miss1.ogg, - data/sfx/fist-swish.ogg, data/sfx/flower-hit1.ogg, - data/sfx/flower-hit2.ogg, data/sfx/flower-miss1.ogg, - data/sfx/fluffy-hit1.ogg, data/sfx/fluffy-hit2.ogg, - data/sfx/fluffy-hit3.ogg, data/sfx/fluffy-hurt1.ogg, - data/sfx/fluffy-miss1.ogg, data/sfx/knife-hit1.ogg, - data/sfx/knife-miss1.ogg, data/sfx/levelup.ogg, - data/sfx/scorpion-hit1.ogg, data/sfx/scorpion-hit2.ogg, - data/sfx/scorpion-hit3.ogg, data/sfx/scorpion-hit4.ogg, - data/sfx/scorpion-miss1.ogg, data/sfx/short-sword-hit1.ogg, - data/sfx/short-sword-miss1.ogg, data/sfx/shroom-hit1.ogg, - data/sfx/slime-hit1.ogg, data/sfx/Makefile.AM, - data/sfx/CMakeLists.txt: Added a lot of sound effects by Cosmostrator. - -2006-11-30 Bjørn Lindeijer - - * data/maps/Makefile.am: Fixed small trailing slash issue. - * src/player.cpp: Optimized setSex and setWeapon by first loading the - new sprite and then deleting the old one (prevents potentially - unnecessary reload). - * src/net/beinghandler.cpp: Optimized handling of player walk - messages, by first setting the gender right and then setting the - equipment. Gets rid of reload of complete equipment in the case of - female. - -2006-11-30 Eugenio Favalli - - * The Mana World.dev, tmw.cbp: Updated project files. - -2006-11-29 Bjørn Lindeijer - - * src/monster.cpp: Small fix to resource path. - -2006-11-29 Philipp Sehmisch - - * src/resources/equipment.h: Made getSprite return a constant - reference. - * src/resources/monsterdb.cpp, src/resources/monsterdb.h, - src/resources/monsterinfo.cpp, src/resources/monsterinfo.h, - src/Makefile.AM, src/CMakeLists.txt, src/main.cpp: - Added the MonsterDB namespace that reads the monsters.xml - and maps monster IDs to names, sprite definitions and sound effects. - * src/monster.cpp: Get sprite definition filenames from MonsterDB. - * src/engine.cpp: Show monster name when targeting a monster. - * data/monsters.xml, data/graphics/sprites/Makefile.AM, - data/graphics/sprites/CMakeLists.txt, data/graphics/sprites/monster*: - Renamed all monster sprites to more associative names (whew, we got to - train some monkeys for tasks like that). - -2006-11-27 Bjørn Lindeijer - - * tmw.cbp: Updated Code::Blocks project file. - -2006-11-27 Philipp Sehmisch - - * src/log.cpp, src/util/wingettimeofday.h: Added implementation of - gettimeofday() for windows machines. - -2006-11-26 Bjørn Lindeijer - - * src/log.cpp: Higher precision log timestamps. - * src/graphics.cpp, src/gui/gui.cpp, src/openglgraphics.cpp, - src/main.cpp, src/resources/equipmentdb.cpp, - src/resources/resourcemanager.cpp: Added some additional log - statements. - * src/resources/itemdb.cpp: Removed usage of READ_PROP in favour of - XML::getProperty and updated log statements. - * src/resources/image.cpp: Added support for loading TGA images. - -2006-11-26 Björn Steinbrink - - * src/resources/resourcemanager.cpp: Remove unnecessary check for - file existance, loading will just fail with the correct error message. - -2006-11-26 Bjørn Lindeijer - - * src/game.cpp, src/being.cpp, src/net/beinghandler.cpp, src/being.h: - Made Being::mDirection protected, forcing the use of setDirection. - * src/npc.cpp, src/player.cpp, src/animatedsprite.h, src/monster.cpp, - src/resources/resourcemanager.h: Defaulted variant argument to 0 since - this is the most common situation. - * src/resources/spritedef.cpp, src/resources/spritedef.h: Some - refactoring, splitting up the loading into several methods, in - preparation of adding support for including other sprites. - * src/main.cpp: ItemDB needs to be unloaded before deleting the - resource manager instance, since ItemInfo refers to an Image. - -2006-11-26 Philipp Sehmisch - - * src/being.cpp, src/being.h, src/engine.cpp, src/main.cpp, - src/player.cpp, src/player.h, src/resources/equipmentdb.h, - src/resources/equipmentdb.cpp, src/resources/equipmentinfo.h, - src/resources/itemdb.cpp, src/resources/itemdb.h, - data/graphics/images/error.png, data/graphics/sprites/error.xml: - Added the EquipmentDB namespace that reads the equipment.xml, maps - equipment IDs to sprite definition files and thus allows gender - specific equipment sprites. - * data/graphics/sprites/chest-leather-female.png, - data/graphics/sprites/chest-leather-male.png, - data/graphics/sprites/chest-leather-female.xml, - data/graphics/sprites/chest-leather-male.xml, - data/equipment.xml: Added and defined male and female leather shirt as - proof of concept of the gender specific equipment. - * data/graphics/images/Makefile.am, data/graphics/sprites/Makefile.am, - data/Makefile.am, src/Makefile.am, - data/graphics/images/CMakeLists.txt, - data/graphics/sprites/CMakeLists.txt, data/CMakeLists.txt, - src/CMakeLists.txt: Updated Makefiles and CMake Lists. - -2006-11-24 Philipp Sehmisch - - * src/engine.cpp, src/floor_item.cpp, src/item.h, src/main.cpp, - src/gui/buy.cpp, src/gui/popupmenu.cpp, src/gui/sell.cpp, - src/gui/shop.cpp, src/net/inventoryhandler.cpp, - src/resources/itemdb.cpp, src/resources/itemdb.h, - src/resources/iteminfo.h, src/resources/itemmanager.cpp, - src/resources/itemmanager.h: Refactored the Itemmanager class to an - ItemDB namespace. - -2006-11-23 Eugenio Favalli - - * The Mana World.dev, tmw.cbp: Updated project files. - -2006-11-19 Bjørn Lindeijer - - * src/gui/setup_joystick.cpp: Fixed joystick option to show enabled - when the joystick is enabled. - * src/localplayer.cpp, src/game.cpp, src/action.h, src/action.cpp, - src/player.cpp, src/animatedsprite.h, src/being.cpp, src/animation.h, - src/monster.cpp, src/CMakeLists.txt, src/player.h, - src/animatedsprite.cpp, src/localplayer.h, src/animation.cpp, - src/Makefile.am, src/being.h, src/resources/resourcemanager.cpp, - src/resources/spritedef.cpp, src/resources/resourcemanager.h, - src/resources/spriteset.h, src/resources/spritedef.cpp: Separated - sprite definition from playback. - -2006-11-17 Björn Steinbrink - - * data/graphics/sprites/CMakeLists.txt: Fixed some filenames. - -2006-11-17 Wai Ling Tsang - - * src/gui/gui.cpp: Added mouse following ability/feature under - logic(). - * src/gui/gui.h: Added mouseMotion(), mouseRelease() and private - variables for mouse following. - -2006-11-15 Philipp Sehmisch - - * data/graphics/tiles/Woodland_village.png, - data/graphics/tiles/Woodland_village_x2.png, - data/graphics/tiles/Woodland_x2.png, - data/graphics/tiles/Makefile.AM, - data/graphics/tiles/CMakeList.txt, - data/maps/new_9-1.tmx.gz, data/maps/new_14-1.tmx.gz, - data/maps/new_15-1.tmx.gz, data/maps/new_16-1.tmx.gz, - data/maps/new_17-1.tmx.gz, data/maps/new_18-1.tmx.gz, - data/maps/new_19-1.tmx.gz, data/maps/CMakeList.txt, - data/maps/Makefile.AM: - Added woodland village outdoor tileset and maps. Modified gates on - the nearby maps. - -2006-11-15 Bjørn Lindeijer - - * src/animatedsprite.h, src/CMakeLists.txt, src/animatedsprite.cpp, - src/utils/xml.cpp, src/utils/xml.h, src/Makefile.am, - src/resources/mapreader.cpp: Separated getProperty method to an XML - utility namespace. - -2006-11-15 Eugenio Favalli - - * The Mana World.dev, tmw.cbp: Updated project files. - * The Mana World.dev, tmw.cbp: Fixed dynamic linking of libcurl. - -2006-11-14 Bjørn Lindeijer - - * src/action.h, src/action.cpp, src/animation.h, src/CMakeLists.txt, - src/animatedsprite.cpp, src/animation.cpp, src/Makefile.am: Separated - Action class to its own module. - * src/action.h, src/action.cpp, src/animatedsprite.h, src/animation.h, - src/animatedsprite.cpp, src/animation.cpp: Resolve Image* of animation - phase at load time instead of storing just the spriteset index and - looking it up later (checking validity should still be added). Also - calculate animation length during loading instead of summing it up - each time it is requested. - -2006-11-12 Bjørn Lindeijer - - * src/map.cpp, src/map.h: Made pathfinding algorithm cope better with - beings blocking the road. This is done by allowing walking over other - beings, but at an additional cost so that it is preferable to walk - around them. - * src/game.cpp: Worked around a Guichan exception thrown for mice with - many buttons (patch by Roel van Dijk). - -2006-11-09 Eugenio Favalli - - * src/main.cpp, src/net/network.cpp, src/net/network.h, - The Mana World.dev, tmw.cbp: Fixed a conflict with Windows headers and - updated project files. - -2006-11-05 Bjørn Lindeijer - - * src/gui/trade.cpp: Fixed money field to no longer hide below the - bottom of the window. - * src/CMakeLists.txt: Added shoplistbox.h/cpp files. - * src/gui/updatewindow.cpp: Fixed percentage indicator of update - window. - * src/main.cpp, src/net/beinghandler.cpp, src/net/skillhandler.cpp, - src/net/network.cpp: Changed some printf statements to log statements. - -2006-11-05 Bjørn Lindeijer - - * data/graphics/images/login_wallpaper.png: Reverted to standard - wallpaper. - * src/resources/resourcemanager.cpp: More useful logging about - resources that are being loaded (including source). - * src/graphics.cpp, src/gui/window.cpp, src/gui/button.cpp, - src/gui/widgets/dropdown.cpp, src/gui/textfield.cpp, - src/gui/playerbox.cpp, src/gui/progressbar.cpp, - src/gui/scrollarea.cpp, src/graphics.h, src/CMakeLists.txt, - src/Makefile.am, src/graphic, src/graphic/imagerect.h: Merged the - definition of ImageRect into graphics.h. - -2006-11-05 Yohann Ferreira - - * src/Makefile.am, src/gui/buy.cpp, src/gui/buy.h, src/gui/shop.h, - src/gui/shop.cpp, src/gui/sell.cpp, src/gui/shoplistbox.h, - src/gui/shoplistbox.cpp: Added pictures to items in buy dialogs. - Also too expensive items are highlighted in gray and can't be - selected. - * src/gui/shop.cpp, src/gui/shop.h, src/gui.sell.h, src/gui/sell.cpp, - src/net/buysellhandler.cpp, src/gui/shoplistbox.h, - src/gui/shoplistbox.cpp: Added item's pictures in sell dialogs, and - precisions about the total money in it. - * src/gui/shop.h, src/gui/shop.cpp, src/gui/sell.cpp: Fixes to Sell - dialog. - * src/gui/sell.cpp: Fixes the money value after selling something. - -2006-11-05 Björn Steinbrink - - * data/graphics/sprites/Makefile.am: Use tabs instead of spaces as - required by automake (AFAIK). - -2006-11-05 Philipp Sehmisch - - * data/graphics/sprites/weapon0.png, - data/graphics/sprites/weapon2.png, - data/graphics/sprites/weapon-bow.xml, - data/graphics/sprites/weapon-dagger.xml, - data/graphics/sprites/weapon-fist.xml, - data/graphics/sprites/weapon-scythe.xml, - data/graphics/items/weapon-polearm-scythe.png, src/player.cpp, - src/player.h, src/being.cpp, src/being.h, data/items.xml: Added scythe - as a permanent weapon (ID: 623) - -2006-11-04 Björn Steinbrink - - * src/gui/updatewindow.cpp, src/gui/updatewindow.h: Removed useless - addRow method. - -2006-11-04 Bjørn Lindeijer - - * data/maps/new_1-1.tmx.gz, data/maps/new_10-1.tmx.gz, - data/maps/new_11-1.tmx.gz, data/maps/new_14-1.tmx.gz, - data/maps/new_15-1.tmx.gz, data/maps/new_16-1.tmx.gz, - data/maps/new_3-1.tmx.gz, data/maps/new_7-1.tmx.gz, - data/maps/new_9-1.tmx.gz: Reverted Halloween map versions, except for - map 10 and 11 which include the latest fixes by Crush but now have - their night layer removed. - -2006-11-04 Philipp Sehmisch - - * data/maps/new_17-1.tmx.gz, - data/graphics/images/minimap_new_17-1.png, - data/graphics/images/Makefile.am, - data/graphics/images/CMakeLists.txt: - Added music and minimap to woodland cave level 2. - * data/maps/new_10-1.tmx.gz, maps/new_11-1.tmx.gz: - Fixed some map bugs (please update server sided walkmap) - -2006-11-03 Bjørn Lindeijer - - * src/gui/updatewindow.cpp, src/main.cpp: Updated to the new default - updatehost. - -2006-11-01 Bjørn Lindeijer - - * src/gui/gui.cpp, src/gui/browserbox.cpp, - data/graphics/gui/rpgfont_wider.png, - data/graphics/gui/browserfont.png, data/graphics/gui/fixedfont.png: - Added support for Ã¥ and Ã… (with help of HÃ¥kan Rönn). - -2006-10-31 Philipp Sehmisch - - * data/graphics/tiles/desert1.png, data/graphics/tiles/desert_x2.png: - Adding a bunch of graphical improvements made by VxD. - -2006-10-31 Frode Lindeijer - - * data/graphics/sprites/item011.png, - data/graphics/sprites/item011.xml, data/graphics/sprites/item012.png, - data/graphics/sprites/item018.xml, - data/graphics/sprites/monster21.xml: Fixed some graphical issues, - mostly a cosmetic update. - -2006-10-30 Yohann Ferreira - - * debian/changelog: Updated the package's version. - -2006-10-30 Philipp Sehmisch - - * data/maps/new_9-1.tmx.gz: Removed the night effect that accidentally - sneaked in with the last map change. - -2006-10-30 Eugenio Favalli - - * src/tmw.rc: Updated Windows binary version. - * data/help/header.txt, NEWS, README: Fixed some release dates and - versions. - * data/graphics/items/armor-head-axehat.png, - data/graphics/items/armor-head-bandana.png, - data/graphics/items/armor-head-circlet.png, - data/graphics/items/armor-head-eyepatch.png, - data/graphics/items/armor-head-goggles.png, - data/graphics/items/armor-head-leathergoggles.png, - data/graphics/items/armor-head-piratehat.png, - data/graphics/items/armor-head-pumpkinhelmet.png, - data/graphics/items/Makefile.am, data/items.xml: Added new items. - * data/graphics/sprites/Makefile.am, - data/graphics/sprites/monster21.png, - data/graphics/sprites/monster21.xml, - data/graphics/sprites/monster22.png, - data/graphics/sprites/monster22.xml: Added new monsters. - * data/graphics/sprites/item011.png, data/graphics/sprites/item011.xml, - data/graphics/sprites/item012.png, data/graphics/sprites/item012.xml, - data/graphics/sprites/item013.png, data/graphics/sprites/item013.xml, - data/graphics/sprites/item014.png, data/graphics/sprites/item014.xml, - data/graphics/sprites/item015.png, data/graphics/sprites/item015.xml, - data/graphics/sprites/item016.png, data/graphics/sprites/item016.xml, - data/graphics/sprites/item017.png, data/graphics/sprites/item017.xml, - data/graphics/sprites/item018.png, data/graphics/sprites/item018.xml, - data/graphics/sprites/Makefile.am: Added new visible equipments. - * data/graphics/images/login_wallpaper.png, data/maps/new_1-1.tmx.gz, - data/maps/new_10-1.tmx.gz, data/maps/new_11-1.tmx.gz, - data/maps/new_14-1.tmx.gz, data/maps/new_15-1.tmx.gz, - data/maps/new_16-1.tmx.gz, data/maps/new_3-1.tmx.gz, - data/maps/new_7-1.tmx.gz, data/maps/new_9-1.tmx.gz: Halloween related - contents. - * data/graphics/items/Makefile.am: Fixed wrong filename. - * data/graphics/sprites/Makefile.am: Fixed wrong filenames. - * data/graphics/sprites/weapon0.png: Replaced knife with scythe. - -2006-10-30 Björn Steinbrink - - * data/graphics/items/CMakeLists.txt: Synced with autotools config. - * data/graphics/items/CMakeLists.txt: Added new items to CMake config. - * src/being.cpp: Properly initialize sprite vector. - -2006-10-29 Bjørn Lindeijer - - * configure.ac, The Mana World.dev, CMakeLists.txt, - data/help/header.txt, NEWS: Set version to 0.0.21.1. - * src/player.cpp: Fixed excessive unnecessary reloading of sprites. - -2006-10-28 Björn Steinbrink - - * src/main.c: Reload wallpaper after updates are fetched. - * data/graphics/sprites/Makefile.am: Added monster20. - -2006-10-28 Philipp Sehmisch - - * data/graphics/sprites/monster20.png, - data/graphics/sprites/monster20.xml, - data/graphics/sprites/CMakeLists.txt: - Added pumpkin ghost monster for halloween event. - * data/maps/new_9-1.tmx.gz: Fixed a map discrepancy between - new_9-1 and new_14-1 (no new walkmap required). Thanks to QOAL - for reporting. - -2006-10-24 Philipp Sehmisch - - * data/graphics/images/ambient/night.png: added graphic for night - ambient effect. - -2006-10-23 Bjørn Lindeijer - - * configure.ac: Added zlib check before PhysFS check. The PhysFS check - was failing on MSYS because of a missing -lz. - -2006-10-22 Björn Steinbrink - - * CMakeLists.txt, src/CMakeLists.txt: Add PACKAGE_VERSION support. - * CMakeLists.txt, src/CMakeLists.txt: Setup the binary dir in the main - CMakeLists.txt file. - * src/main.h: Include config.h only when we have it. - * src/CMakeLists.txt: Properly set build flags for the tmw target. - -2006-10-18 Björn Steinbrink - - * src/CMakeLists.txt, data/graphics/tiles/CMakeLists.txt, - data/graphics/items/CMakeLists.txt, data/graphics/gui/CMakeLists.txt, - data/graphics/images/ambient/CMakeLists.txt, - data/graphics/images/CMakeLists.txt, - data/graphics/sprites/CMakeLists.txt, data/maps/CMakeLists.txt, - data/sfx/CMakeLists.txt, data/help/CMakeLists.txt, - data/icons/CMakeLists.txt, data/CMakeLists.txt, CMakeLists.txt: Add - TMW_DATADIR definition. - -2006-10-16 Eugenio Favalli - - * src/CMakeLists.txt: Adjusted path for Windows. - -2006-10-16 Björn Steinbrink - - * CMakeLists.txt: Enable OpenGL by default. - * CMake/Modules/FindLibcurl.cmake: Fix libcurl library not being - marked as advanced option. - * CMakeLists.txt, src/CMakeLists.txt: Add OpenGL option. - * data/CMakeLists.txt: Adjust data destination for Windows. - * src/CMakeLists.txt: Adjust binary destination for Windows. - * src/CMakeLists.txt, data/graphics/tiles/CMakeLists.txt, - data/graphics/items/CMakeLists.txt, data/graphics/gui/CMakeLists.txt, - data/graphics/images/ambient/CMakeLists.txt, - data/graphics/images/CMakeLists.txt, - data/graphics/sprites/CMakeLists.txt, data/graphics/CMakeLists.txt, - data/maps/CMakeLists.txt, data/sfx/CMakeLists.txt, - data/help/CMakeLists.txt, data/icons/CMakeLists.txt, - data/CMakeLists.txt, CMakeLists.txt: Add CMake install support. - * CMake/Modules/FindGuichan.cmake, CMake/Modules/FindLibXml2.cmake, - CMake/Modules/FindLibcurl.cmake, CMakeLists.txt, src/CMakeLists.txt: - Add basic CMake support for building tmw. - -2006-10-12 Yohann Ferreira - - * debian/rules, debian/tmw-data.install, debian/tmw-data.dirs, - debian/tmw-music.install, debian/changelog: Updating Debian files for - bug fixing. - -2006-10-12 Frode Lindeijer - - * /data/graphics/sprites/npcs.png: Updated the clothes salesman, - it was way out of date. - -2006-10-12 Cédric Borgese - - * data/graphics/tiles/Woodland_x3.png: Enlarge the trunk and the - base of the trees in the woodland tileset. - -2006-10-09 Yohann Ferreira - - * src/gui/buysell.cpp, src/gui/buy.cpp : A little tweak to the buy - dialogs. - -2006-10-07 Bjørn Lindeijer - - * src/resources/mapreader.cpp: Added support for gzip compressed map - layers. - * configure.ac, The Mana World.dev: Increased version to 0.0.22. - * src/map.cpp: Removed unused setSize method. Also introduced - initializeOverlays method and removed the confusing setOverlay (which - actually added one). - * src/properties.h: Added convenience method to read a property as a - float. - * src/map.cpp, src/resources/ambientoverlay.cpp, - src/resources/ambientoverlay.h: Resolved some weirdness involving - the terms scroll and speed. - -2006-10-07 Eugenio Favalli - - * The Mana World.dev, tmw.cbp: Updated project files. - -2006-10-03 Bjørn Lindeijer - - * data/graphics/sprites/item006.xml, - data/graphics/sprites/item007.xml, - data/graphics/sprites/item008.xml, - data/graphics/sprites/item009.xml, - data/graphics/sprites/item006.png, - data/graphics/sprites/item007.png, - data/graphics/sprites/item008.png, - data/graphics/sprites/item009.png, - data/graphics/sprites/item010.xml, - data/graphics/sprites/item010.png: Removed empty frames from - headgears. - -2006-10-03 Björn Steinbrink - - * src/map.cpp, src/map.h, src/Makefile.am, - src/resources/mapreader.cpp, src/resources/ambientoverlay.cpp, - src/resources/ambientoverlay.h: Turned AmbientOverlay into a class. - Cleaned up the associated code. - -2006-10-01 Eugenio Favalli - - * tools/Purger.java: Added a tool to purge old accounts from eAthena's - database files. - -2006-10-01 Bjørn Lindeijer - - * src/game.cpp, src/gui/trade.cpp, src/gui/inventorywindow.cpp: - Accepted patches by GDO and VictorSan that fix problems with hiding - windows using h and problems with trade window positioning. - -2006-09-28 Björn Steinbrink - - * src/map.cpp: Fix random crashes when map tiles are missing. - -2006-09-28 Bjørn Lindeijer - - * data/graphics/maps/new_2-1.tmx.gz: Matt Howe fixed up cave map. - -2006-09-26 Eugenio Favalli - - * data/graphics/maps/new_6-1.tmx.gz: Alderan fixed a map issue. - -2006-09-25 Bjørn Lindeijer - - * data/graphics/sprites/hairstyle*.png, - data/graphics/sprites/hairstyle*.xml, tools/Reorganize.java: Removed - unused frames from the hairsets. - * src/resources/image.h: Defined NO_SDL_GLEXT to prevent a - redefinition when gl.h also tries to define OpenGL extensions (patch - accepted from Rogier Polak). - -2006-09-23 Bjørn Lindeijer - - * data/maps/new_5-1.tmx.gz: Accepted new version by Matt Howe, fixing - several mapping issues. - -2006-09-21 Eugenio Favalli - - * data/graphics/tiles/Makefile.am: Added missing tileset. - * src/gui/updatewindow.cpp, src/gui/updatewindow.h: Made canceling the - update process non-blocking (Patch by VictorSan). - -2006-09-21 Philipp Sehmisch - - * src/animation.cpp, src/animation.h, src/animatedsprite.cpp, - src/animatedsprite.h: Removed some obsolete code and implemented - the posibility to define an token in the s - that allows to define an animation that doesn't loop and returns - to the STAND animation when finished. - * data/graphics/sprites/hairstyle*.xml, - data/graphics/sprites/item0*.xml, - data/graphics/sprites/monster*.xml, - data/graphics/sprites/weapons.xml: Used the token for all - attack animations fixing the problem with looping monster attack - animations. - -2006-09-20 Philipp Sehmisch - - * data/graphics/items/generic-whitefur.png, - data/graphics/items/generic-cavesnakelamp.png, - data/graphics/items/generic-hardspike.png, - data/graphics/items/generic-pinkantennae.png, - data/graphics/items/Makefile.am, data/items.xml: Added drops for new - monsters. - * src/gui/setup.cpp, src/gui/setup_video.cpp, - src/gui/setup_video.h: Added a slider for controlling the overlay - detail to the video setup dialog based on a patch by VictorSan. - * data/maps/new_14-1.tmx.gz, data/maps/new_16-1.tmx.gz: Added cloud - effect and minimap. - * data/images/Makefile.am: Updated makefile. - -2006-09-19 Bjørn Lindeijer - - * data/graphics/sprites/Makefile.am: Added missing monster19 sprite. - -2006-09-17 Eugenio Favalli - - * data/maps/Makefile.am: Added missing maps. - * data/maps/new_10-1.tmx.gz: Disabled layer compression. - -2006-09-18 Philipp Sehmisch - - * data/maps/new_9-1.tmx.gz: Fixed some mapping bugs (new walkmap - required). - -2006-09-17 Eugenio Favalli - - * data/maps/new_10-1.tmx.gz: Fixed transparent snow issue (Fix by - Pajarico). - -2006-09-17 Björn Steinbrink - - * src/game.cpp: Stop using the sticky window attribute which is - unneeded for the current implementation, instead adjust the set of - affected windows by the 'hide' shortcut. - -2006-09-17 Philipp Sehmisch - - * data/maps/new_14-1.tmx.gz, data/maps/new_15-1.tmx.gz, - data/maps/new_16-1.tmx.gz: fixed some mapping errors. - -2006-09-16 Philipp Sehmisch - - * src/animatedsprite.cpp, src/animatedsprite.h: Fixed the crash when - attacking without a weapon, some additional stability improvements and - more descriptive variable names in the parsing algorithmn. - -2006-09-16 Eugenio Favalli - - * data/help/changes.txt, data/help/header.txt, NEWS, README, - src/tmw.rc: Updated release infos. - -2006-09-14 Philipp Sehmisch - - * src/animation.h, src/animatedsprite.h, - data/graphics/sprites/weapon.xml: Some modifications at the animation - system. No more "undefined action foo" warnings in the tmw.log. Not - visible actions must now be declared explicitly. - * data/graphics/images/ambient/sandstorm.png, - data/graphics/images/ambient/clouds.png: Improved quality of the overlay - graphics. - -2006-09-14 Björn Steinbrink - - * src/gui/char_select.cpp: Remove debug output. - * src/gui/char_select.cpp, src/main.cpp: Fix the character name - matching loop and add support for saving the last used character - (based on a patch by Andrew Harrison). - * src/gui/char_select.cpp, src/gui/char_select.h, src/main.cpp: Clean - up the player selection stuff, it's a bit nicer now. - * src/main.cpp: Fix up the player selection command line option. - -2006-09-12 Bjørn Lindeijer - - * src/game.cpp, src/game.h: Simplified fps limiting a bit and added - some comments. Now based on ConfigListener so that the fpslimit option - doesn't need to be queried the whole time. - * NEWS: Updated with some items. - -2006-09-11 Eugenio Favalli - - * src/game.cpp: Fixed more fps issues. - -2006-09-09 Bjørn Lindeijer - - * src/gui/gui.cpp: Removed easy targeting functionality since it - interferes with walking around too much. Targeting can still be rather - conveniently done with 'a' or the middle mouse button. - -2006-09-07 Björn Steinbrink - - * src/resources/image.cpp: Fixed a typo. - * src/resources/image.cpp: Worked around a memory leak when using - OpenGL. - -2006-09-06 Philipp Sehmisch - - * data/graphics/sprites/item010.png, data/graphics/sprites/item010.xml, - data/graphics/sprites/Makefile.am: Added santa hat sprites and updated - makefile. - -2006-09-06 Eugenio Favalli - - * src/game.cpp, src/gui/setup_video.cpp, src/main.cpp: Fixed fps - limiter issues and increased default limit to 60. - * src/game.cpp: Fixed fps limiter when disabled. - -2006-09-05 Philipp Sehmisch - * data/graphics/tiles/Woodland_ground.png, - data/graphics/tiles/Woodland_x2.png, - data/graphics/tiles/Woodland_x3.png: Some minor improvements and - additions at my tilesets. - * data/graphics/sprites/monster0.xml, - data/graphics/sprites/monster1.xml, - data/graphics/sprites/monster2.xml, - data/graphics/sprites/monster3.xml, - data/graphics/sprites/monster4.xml, - data/graphics/sprites/monster5.xml, - data/graphics/sprites/monster6.xml, - data/graphics/sprites/monster8.xml, - data/graphics/sprites/monster9.xml, - data/graphics/sprites/monster11.xml, - data/graphics/sprites/monster13.xml, - data/graphics/sprites/monster0.xml: Adjusted the animation speed of - several monsters. - -2006-09-03 Bjørn Lindeijer - - * src/floor_item.cpp, src/gui/equipmentwindow.cpp, src/gui/sell.cpp, - src/gui/trade.cpp, src/gui/inventorywindow.h, - src/gui/selectionlistener.h, src/gui/itemcontainer.h, - src/gui/inventorywindow.cpp, src/gui/buy.cpp, - src/gui/itemcontainer.cpp, src/gui/popupmenu.cpp, src/item.h, - src/net/inventoryhandler.cpp, src/Makefile.am, - src/resources/itemmanager.h, src/resources/iteminfo.cpp, - src/resources/iteminfo.h, src/resources/itemmanager.cpp: Introduced - SelectionListener to fix updating problem in inventory window (should - also be used to fix similar problem in trade, buy and sell dialogs). - Made the ItemInfo be passed around as a reference instead of a pointer, - since it is never NULL. - * src/gui/trade.cpp, src/gui/trade.h: Fixed updating of labels in - trade window. - * src/gui/sell.cpp, src/gui/listbox.h, src/gui/inventorywindow.h, - src/gui/buy.h, src/gui/buy.cpp, src/gui/sell.h, src/gui/listbox.cpp: - Fixed updating of labels in buy and sell dialogs. Also made our - listbox respond to mouse dragging to change the selection. - -2006-09-02 Bernard Lidicky - - * src/game.cpp, src/beingmanager.h, src/gui/gui.cpp, - src/beingmanager.cpp, src/localplayer.h, README, - data/help/commands.txt, NEWS: Added targeting nearest monster with - either keyboard or mouse. Also made clicking beings in general a bit - easier (patch applied by Bjørn Lindeijer). - -2006-09-01 Eugenio Favalli - - * data/graphics/sprites/monster19.png, - data/graphics/sprites/monster19.xml, data/graphics/tiles/arena.png, - data/graphics/tiles/cave.png, data/maps/new_17-1.tmx.gz, - data/maps/new_6-1.tmx.gz: Added new big cave map, lamp-snake monster, - improved arena map. - -2006-08-30 Philipp Sehmisch - - * data/graphics/sprites/item007.png, - data/graphics/sprites/item007.xml, data/graphics/sprites/item009.png, - data/graphics/sprites/item009.xml: - Added sprites for miners helm and standard headband. - -2006-08-29 Bjørn Lindeijer - - * src/map.cpp, src/beingmanager.h, src/gui/minimap.cpp, - src/engine.cpp, src/beingmanager.cpp: It's better to use a reference - when you don't need a pointer. - * NEWS: Updated with addition of config file option. - -2006-08-29 Andrew Harrison - - * src/main.cpp: Added command line option to specify which - configuration file to use (patch applied by Bjørn Lindeijer). - -2006-08-29 Matthias Hartmann - - * data/graphics/sprites/item006.png, - data/graphics/sprites/item006.xml, data/graphics/sprites/item008.xml: - Fixed fancy hat + silk headband positions. - -2006-08-29 Philipp Sehmisch - - * data/graphics/sprites/item008.png, - data/graphics/sprites/item008.xml, data/graphics/sprites/Makefile.am: - Added fancy hat sprite. - -2006-08-28 Philipp Sehmisch - - * src/gui/setup_video.cpp: Modified the ranges of the ScrollLaziness - and ScrollRadius sliders. - -2006-08-28 Eugenio Favalli - - * data/graphics/items/*: Changed svn properties. - * data/graphics/sprites/item001.xml, data/graphics/sprites/item002.xml, - data/graphics/sprites/item003.xml, data/graphics/sprites/item004.xml, - data/graphics/sprites/item005.xml, data/graphics/sprites/item006.png, - data/graphics/sprites/item006.xml, data/graphics/sprites/Makefile.am: - Added headband and fixed svn properties. - -2006-08-27 Bjørn Lindeijer - - * src/net/inventoryhandler.cpp: Applied patch by Andrew Harrison that - adds item pickup messages to the chat window. - * NEWS: Updated with some recently added and fixed issues. Doesn't - mention any of the recent content updates yet. - -2006-08-26 Pascal Ganaye - - * src/joystick.h, src/joystick.cpp, src/gui/setup.cpp, - src/gui/setup_joystick.h, src/gui/setup_video.cpp, - src/gui/setup_joystick.cpp, src/gui/setup_video.h: Added sliders to - the video section of the setup window to configure the laziness and - radius of the scrolling behaviour. Added a checkbox to the joystick - section to allow enabling/disabling the joystick (patch applied by - Bjørn Lindeijer). - -2006-08-26 Bjørn Lindeijer - - * src/gui/ministatus.cpp, src/gui/ministatus.h: Applied patch by mrha - (Herbi), adding experience bar to the ministatus in the top left. - * configure.ac, data/graphics/items/Makefile.am, - data/graphics/Makefile.am: Added Makefile.am to make sure the item - icons are installed. - * src/player.cpp, src/animation.h, src/player.h, - src/animatedsprite.cpp, src/animation.cpp: Applied patch by Bahamut81 - which implements resetting of Animation, Action and AnimatedSprite. - This fixes the animation synchronization issues. - -2006-08-25 Matthias Hartmann - - * src/gui/char_select.cpp, src/gui/char_select.h, src/main.cpp: Added - --playername command line option for selecting the character you want - to play with (patch applied by Bjørn Lindeijer). - -2006-08-25 Philipp Sehmisch - - * src/engine.cpp, src/map.h, src/map.cpp: Addded new config variable - "OverlayDetail" to control the number of drawn overlays. - 2 (or more) = all (default), 1 = only the first one, 0 = none. - -2006-08-24 Eugenio Favalli - - * data/help/commands.txt, README, src/game.cpp, src/gui/chat.cpp, - src/gui/window.cpp, src/gui/window.h: Added support for sticky windows - as discussed with doener. Patch by Andrew Harrison. - * data/items.xml: Added jeans shorts. - -2006-08-24 Philipp Sehmisch - - * src/engine.cpp: Scrolling speed no longer affected by framerate. - * src/map.cpp, scr/map.h: Overlay speed no longer affected by - framerate. - * data/maps/new_1-1.tmx.gz, data/graphics/new_7-1.tmx.gz, - data/graphics/images/ambient/sandstorm.png: Redone sandstorm effect - (larger and more transparent image, tripple layer parallax scrolling) - -2006-08-24 Frode Lindeijer - - * data/graphics/sprites/item004.png, - data/graphics/sprites/item005.png, data/graphics/sprites/Makefile.am, - data/graphics/items/armor-legs-cottonshorts, - data/graphics/items/armor-legs-jeanshorts: Added the equip graphics of - the short jeans and the cotton shorts and an inventory icon of the - cotton shorts. Also added all added files to the makefile. - -2006-08-23 Philipp Sehmisch - - * data/maps/new_7-1.tmx.gz: Fixed a minor mapping bug reported on the - forum (no new walkmap required). - * data/maps/new_9-1.tmx.gz: Fixed two minor mapping bugs (new walkmap - required). - -2006-08-22 Bjørn Lindeijer - - * configure.ac, data/graphics/images/ambient, - data/graphics/images/ambient/Makefile.am, - data/graphics/images/Makefile.am: Updated makefiles to account for new - ambient images and changed the version from 0.0.20.1 to 0.0.21. - -2006-08-21 Eugenio Favalli - - * The Mana World.dev, tmw.cbp: Updated project files. - -2006-08-21 Philipp Sehmisch - - * src/mapreader.cpp: Added logic for initialisation of the overlays. - * src/map.cpp, src/map.h: Code for updating and drawing the overlays. - * src/engine.cpp, src/engine.h: Added smooth scrolling and the call - to draw the overlays. - * data/maps/new_1-1.tmx.gz, data/graphics/new_7-1.tmx.gz, - data/graphics/images/ambient/sandstorm.png: Added sandstorm effect - to the desert maps outside of the city (feedback, please). - * data/maps/new_2-1.tmx.gz, data/maps/new_4-1.tmx.gz, - data/maps/new_5-1.tmx.gz, data/graphics/images/ambient/spotlight.png - Added spotlight effect to the cave maps (feedback, please) - * data/graphics/maps/new_9-1.tmx.gz, - data/graphics/images/ambient/clouds.png: - Added cloudshadow effect to the woodland map (feedback, please). - -2006-08-20 Bjørn Lindeijer - - * configure.ac: Moved libpng check before SDL_image check, since the - latter requires the former. - -2006-08-20 Yohann Ferreira - - * data/graphics/sprites/Makefile.am: Following the splitting from - Philipp, moved out the items.png file from the Makefile.am. - * debian/control, debian/tmw-data.install: Updated debian package - creation process. - * src/Makefile.am: Added iteminfo.cpp to avoid an undefined reference - with gcc 4.1.2. Happy to be back :) - -2006-08-17 Philipp Sehmisch - - * data/graphics/items/*: Splitted the items.png into separate images - with more distinctive names. (no, i won't list all 114) - * src/itemmanager.cpp, data/items.xml: Replaced indices on the item - spriteset with filenames. added names and descriptions for all missing - items. Changed names and descriptions of some items. - * src/engine.cpp: Removed global item spriteset. - * src/floor_item.cpp, src/floor_item.h, src/iteminfo.cpp, - src/iteminfo.h, src/equipmentwindow.cpp, src/equipmentwindow.h, - src/itemcontainer.cpp, src/itemcontainer.h: The iteminfo class now - provides a pointer to the item icon image instead of providing the - index on the item spriteset. - * data/graphics/tiles/trans_desert-woodland.png: Added transmission - tileset between desert and woodland. - -2006-08-13 Eugenio Favalli - - * data/graphics/sprites/Makefile.am, - data/graphics/sprites/monster18.png, - data/graphics/sprites/monster18.xml, - data/graphics/sprites/npcs.png: Added new monster and npcs. - * src/gui.cpp, tmw.cbp, The Mana World.dev: Fixed Guichan 0.5.0 - compilation issues. - -2006-08-13 Bjørn Lindeijer - - * src/openglgraphics.cpp, src/game.cpp, src/main.cpp, - src/gui/buddywindow.cpp, src/gui/connection.cpp, src/gui/sell.cpp, - src/gui/trade.cpp, src/gui/char_server.cpp, src/gui/window.cpp, - src/gui/login.cpp, src/gui/skill.h, src/gui/gui.cpp, - src/gui/item_amount.h, src/gui/setup_audio.h, src/gui/newskill.cpp, - src/gui/register.h, src/gui/setup.cpp, src/gui/npclistdialog.h, - src/gui/updatewindow.cpp, src/gui/char_select.cpp, src/gui/login.h, - src/gui/item_amount.cpp, src/gui/setup_audio.cpp, - src/gui/npc_text.cpp, src/gui/chat.h, src/gui/setup_joystick.h, - src/gui/setup_video.cpp, src/gui/ok_dialog.cpp, src/gui/textfield.cpp, - src/gui/inventorywindow.h, src/gui/newskill.h, src/gui/box.h, - src/gui/ministatus.cpp, src/gui/buy.h, src/gui/setup.h, - src/gui/confirm_dialog.cpp, src/gui/debugwindow.cpp, src/gui/vbox.cpp, - src/gui/chat.cpp, src/gui/setup_joystick.cpp, src/gui/updatewindow.h, - src/gui/char_select.h, src/gui/buysell.h, src/gui/tabbedcontainer.cpp, - src/gui/inventorywindow.cpp, src/gui/help.cpp, src/gui/status.h, - src/gui/npc_text.h, src/gui/setup_video.h, src/gui/menuwindow.cpp, - src/gui/ok_dialog.h, src/gui/buy.cpp, src/gui/buddywindow.h, - src/gui/sell.h, src/gui/trade.h, src/gui/char_server.h, - src/gui/skill.cpp, src/gui/buysell.cpp, src/gui/confirm_dialog.h, - src/gui/debugwindow.h, src/gui/status.cpp, src/gui/register.cpp, - src/gui/scrollarea.cpp, src/gui/tabbedcontainer.h, - src/gui/npclistdialog.cpp, src/gui/help.h, src/net/tradehandler.cpp, - src/net/playerhandler.cpp, src/Makefile.am, - src/resources/sdlimageloader.cpp, src/resources/sdlimageloader.h, - src/resources/openglsdlimageloader.cpp, - src/resources/resourcemanager.cpp, - src/resources/openglsdlimageloader.h, src/resources/resourcemanager.h: - Updated TMW to be compatible with Guichan 0.5.0 (merged from - guichan-0.5.0 branch). - * INSTALL, docs/INSTALL/win32.txt: Updated required Guichan to version - 0.5.0. - * configure.ac: Moved some basic checks above the checks on the - libraries we depend on, in order to get rid of the confusing - rpl_realloc error. - * src/resources/openglsdlimageloader.cpp, src/player.cpp: Fixed - several compiler warnings and a linker error when compiling without - OpenGL support. - -2006-08-12 Philipp Sehmisch - - * data/maps/new_9-1.tmx.gz, data/maps/new_14-1.tmx.gz, - data/maps/new_15-1.tmx.gz, data/maps/new_16-1.tmx.gz: Fixed some - inaccessible areas. - -2006-08-07 Philipp Sehmisch - * data/maps/new_9-1.tmx.gz, data/maps/new_14-1.tmx.gz, - data/maps/new_15-1.tmx.gz, data/maps/new_16-1.tmx.gz, - data/graphics/images/minimap_new_9-1.png, - data/graphics/images/minimap_new_14-1.png, - data/graphics/images/minimap_new_15-1.png, - data/graphics/images/minimap_new_16-1.png: Added minimaps for woodland - maps. - -2006-08-07 Philipp Sehmisch - - * data/maps/new_1-1.tmx.gz, data/maps/new_14-1.tmx.gz, - data/maps/new_15-1.tmx.gz, data/maps/new_16-1.tmx.gz: - Added a new woodland map and a connection map between desert and - woodland. - * data/graphics/woodland_ground.png: Added some new rocks. - -2006-08-07 Björn Steinbrink - - * src/game.cpp, src/gui/chat.h, src/gui/chat.cpp, src/main.cpp: A - bunch of cleanups. - -2006-08-05 Björn Steinbrink - - * src/configuration.cpp, src/game.cpp, src/engine.cpp, src/player.cpp, - src/being.cpp, src/resources/mapreader.cpp, - src/resources/itemmanager.cpp: Some cleanups, mostly lowering - indentation. - * src/being.cpp: Small code cleanup. - -2006-08-04 Björn Steinbrink - - * src/animatedsprite.cpp: Fix enum being treated as string. - * src/animation.cpp: Small code cleanups. Removed unused headers. - * src/animatedsprite.cpp: Small code cleanup/lower indentation. - -2006-08-04 Bjørn Lindeijer - - * src/animatedsprite.cpp: Fixed presence of NULL actions. This is - doener's version of the fix, because it was more efficient in the more - common case. - -2006-08-04 Frode Lindeijer - - * data/graphics/tiles/desert_x3.png: Replaced the old cactus with - a nice new high-res one. - -2006-08-03 Bjørn Lindeijer - - * src/player.cpp, src/being.cpp, src/being.h: Removed three - setDirection(mDirection) calls by instead specifically setting the - current direction on the newly added animated sprite. The same might - be done for the action later. - * src/animatedsprite.h, src/animatedsprite.cpp: Since this class isn't - subclassed and has no virtual functions, make protected members - private. Also added a start of a reset function which could be a - solution to unsynchronized animated sprites. - * src/net/network.cpp: Fixed two delete/delete[] errors. - -2006-08-01 Philipp Sehmisch - - * src/animation.h, src/animation.cpp, src/animatedsprite.h, - src/animatedsprite.cpp, src/being.cpp: Animations and directions - are now passed and stored as enums and no longer as strings. - -2006-07-30 Björn Steinbrink - - * src/animatedsprite.h, src/animatedsprite.cpp: Unified the play - methods. - -2006-07-30 Philipp Sehmisch - - * data/maps/new_5-1.tmx.gz: Fixed two minor mapping errors (no new - walkmap required). - -2006-07-29 Björn Steinbrink - - * src/animatedsprite.h, src/animatedsprite.cpp, src/animation.cpp: A - bunch of cleanups. - * src/animation.h, src/animatedsprite.cpp: Moved included from header - to source file. - -2006-07-28 Björn Steinbrink - - * src/npc.cpp, src/player.cpp, src/animatedsprite.h, src/animation.h, - src/being.cpp, src/main.cpp, src/monster.cpp, src/animatedsprite.cpp, - src/animation.cpp, src/Makefile.am, src/being.h: Moved AnimatedSprite - into its own files, removed useless includes. - * src/engine.cpp: Removed an unused var. - -2006-07-26 Eugenio Favalli - - * data/graphics/sprites/Makefile.am, data/graphics/tiles/Makefile.am, - data/maps/Makefile.am, data/maps/new_13-1.tmx.gz: Added map with - inside of snow village buildings and fixed makefiles. - * src/being.cpp, src/being.h, src/player.cpp: Fixed direction and - action issues when changing appeareance, frames are still out of sync. - * data/maps/Makefile.am, data/maps/new_14-1.tmx.gz, - data/maps/new_9-1.tmx.gz: Added new woodland map by Crush and fixed - connection with the old one. - -2006-07-26 Bjørn Lindeijer - - * data/maps/new_4-1.tmx.gz: Fixes to the collision layer. - -2006-07-26 Frode Lindeijer - - * data/graphics/tiles/snowset.png, data/graphics/tiles/snow_x2.png, - data/graphics/tiles/snow_x3.png: Moved the lamppost, the rock and the - bench to seperate tall tilebitmaps. - * data/maps/new_11-1.tmx.gz: Improved the snow village map, main - changes are that the player can now walk better behind houses, - lampposts, rocks and benches. - * data/graphics/sprites/item003.png, data/graphics/sprites/item003.xml: - Added the leather shirt - -2006-07-25 Bjørn Lindeijer - - * src/log.cpp, src/log.h: Added support for writing log to standard - output. - * src/gui/updatewindow.cpp: Fixed updating on Windows. - -2006-07-24 Bjørn Lindeijer - - * src/main.cpp: Fixed the loading of updates and made skipping the - update process also skip the loading of updates. - -2006-07-24 Björn Steinbrink - - * src/localplayer.cpp, src/being.cpp: Fixed setDirection() semantics. - Removed a printf-leftover. - -2006-07-24 Frode Lindeijer - - * data/graphics/sprites/npcs.png: Added the organdealer to the NPCs. - * data/graphics/sprites/player_male_base.png, - data/graphics/sprites/player_female_base.png: Fixed some transparency - issues. - -2006-07-24 Eugenio Favalli - - * src/being.cpp, src/being.h, src/localplayer, The Mana World.dev, - tmw.cbp: Removed unused code, fixed "change direction when not - walking" bug, updated project files. - * data/graphics/sprites/monster1.xml: Slowed down scorpions. - * data/graphics/sprites/monster2.xml: Red scorpions have got the same - problem. - * data/graphics/sprites/player_female_base.xml: Fixed female playerset - animation definition. - * data/help/about.txt, data/help/changes.txt, data/help/commands.txt, - data/help/header.txt, data/help/index.txt, data/help/skills.txt, - data/help/support.txt, data/help/team.txt: Forced to use UNIX end of - line character. - * src/net/equipmenthandler.cpp: Equipments now use real slot - positions. - -2006-07-24 Bjørn Lindeijer - - * src/floor_item.cpp, src/animation.h, src/being.cpp, src/main.cpp, - src/gui/equipmentwindow.cpp, src/gui/playerbox.cpp, - src/gui/itemcontainer.cpp, src/engine.cpp, src/tileset.h, - src/animation.cpp, src/Makefile.am, src/resources/mapreader.cpp, - src/resources/resourcemanager.cpp, src/resources/spriteset.cpp, - src/resources/resourcemanager.h, src/resources/spriteset.h, - src/being.h, src/graphic/spriteset.cpp, src/graphic/spriteset.h, - data/graphics/sprites/npc.xml, data/graphics/sprites/weapons.xml: - Implemented caching of spritesets, including a lot of cleanups to the - new animation system. Action now refers to the Spriteset directly and - AnimatedSprite refers to the current Action directly instead of using - the std::map with a std::string constantly. Some methods and - parameters are marked as const. The READ_PROP macro was replaced by - static methods. Warnings are logged when unnamed actions are defined - or when actions refer to undefined imagesets. Code is more tolerant - towards missing actions. - * NEWS: Rearranged some items. - -2006-07-21 Eugenio Favalli - - * src/animation.cpp, src/animation.h: Removed unused code, fixed a - numeric conversion, used a more meaningful speed. - -2006-07-20 Eugenio Favalli - - * data/help/header.txt, data/help/skills.txt, docs/FAQ.txt, README: - Updated some docs for the 0.0.20 release. - * NEWS: Added new features of 0.0.20. - * data/items.xml: Added shorts. - * src/tmw.rc, The Mana World.dev, tmw.cbp: Added a resource script to - let both Dev-Cpp and Code::Blocks share the same binary icon and - version infos. - * data/graphics/sprites/player_female_base.xml, - data/graphics/sprites/player_male_base.xml, src/animation.cpp, - src/animation.h, src/being.cpp: Fixed left bow attack animation, - made the attack animation stay in sync with attack speed. - -2006-07-19 Bjørn Lindeijer - - * src/gui/minimap.cpp: Fixed dot size of local player. - * src/engine.cpp: Fixed color of "[TARGET]". - * src/resources/mapreader.cpp, src/resources/mapreader.h, - data/maps/new_12-1.tmx.gz, data/maps/new_3-1.tmx.gz, - data/maps/new_4-1.tmx.gz, data/maps/new_5-1.tmx.gz, - data/maps/new_6-1.tmx.gz, data/maps/new_7-1.tmx.gz, - data/maps/new_8-1.tmx.gz, data/maps/new_9-1.tmx.gz, - data/maps/new_1-1.tmx.gz, data/maps/new_10-1.tmx.gz, - data/maps/new_11-1.tmx.gz, data/maps/new_2-1.tmx.gz: Implemented - loading for the way Tiled saves properties since version 0.6.0 and - updated all current maps. - -2006-07-19 Eugenio Favalli - - * data/graphics/sprites/item001.png, data/graphics/sprites/item001.xml, - data/graphics/sprites/item002.png, data/graphics/sprites/item002.xml, - data/graphics/sprites/item1202.png, data/graphics/sprites/Makefile.am, - docs/INSTALL/win32.txt, src/animation.cpp, src/being.cpp, src/being.h, - src/gui/equipmentwindow.cpp, src/gui/newskill.cpp, src/main.cpp, - src/net/beinghandler.cpp, src/net/charserverhandler.cpp, - src/player.cpp, src/player.h: Merged trunk changes r2381:2397 into - new_animation branch. - * tmw.cbp: Updated Code::Blocks project file. - * src/gui/char_select.cpp: Fixed next/previous buttons behaviour in - character selection dialog. - * data/graphics/sprites/Makefile.am: Alphabetically correct. - -2006-07-19 Bjørn Lindeijer - - * tmw.cbp: Added Code::Blocks project file. - -2006-07-18 Bjørn Lindeijer - - * src/gui/updatewindow.cpp, src/gui/updatewindow.h, src/main.cpp, - src/resources/resourcemanager.cpp, src/resources/resourcemanager.h: - Updated the updating system. It will now only load those updates - specified in the downloaded resources.txt file, and in the order - in which they are mentioned (the top one being the most - significant). - -2006-07-17 Frode Lindeijer - - * data/graphics/sprites/items.png: Added shorts' icon to items.png - -2006-07-12 Bjørn Lindeijer - - * src/gui/newskill.cpp: Fixed up a string comparison that caused a - warning with GCC 4.2. - -2006-07-12 Frode Lindeijer - - * data/graphics/sprites/item001.png: Completed the cotton shirt - equipment graphic. - -2006-07-06 Philipp Sehmisch - - * src/animation.cpp, src/animation.h, src/being.cpp, src/being.h, - src/monster.cpp, src/npc.cpp, src/player.cpp: - Fixed some minor bugs, cleaned up general code style and added more - comments. - -2006-07-05 Björn Steinbrink - - * src/monster.cpp, src/npc.cpp, src/player.cpp: Fixed broken paths. - * data/graphics/sprites/Makefile.am: Added new files. - * src/animation.cpp: Added missing return value... - * src/Makefile.am: Added new files. - -2006-07-05 Bjørn Lindeijer - - * data/graphics/sprites/monster0.xml: Fixed frame size of maggot. - * src/being.h: drawName should be virtual, lest we want names to be - drawn. - -2006-07-03 Philipp Sehmisch - - * src/spriteset.cpp, src/spriteset.h: Spriteset::get() doesn't crash - anymore when requesting a sprite outside of the spriteset. (it returns - NULL instead and logs a warning). - -2006-07-03 Philipp Sehmisch - - * src/being.cpp: Fixed a compiler issue reported by Pajarico. - -2006-07-03 Bjørn Lindeijer - - * tools/Reorganize.java: Added tool used for reorganizing and - auto-cropping the monster spritesets. - -2006-07-03 Philipp Sehmisch - - * src/main.cpp, src/engine.cpp: Removed some no longer required old - style spritesets. - * src/being.h, src/being.cpp: Removed some no longer needed member - variables. - * src/monster.cpp: Monsters are now drawed with the new animation - system. - * src/npc.cpp, data/graphics/sprites/npcs.xml: NPCs are now drawed - with the new animation system. - * src/being.h, src/being.cpp, src/npc.cpp, src/npc.h, src/monster.cpp, - src/monster.h: Moved all drawing code from the Being based classes - into Being. - * data/graphics/sprites/monster*.png: Resized and reorganized the - monster spritesets to fit the new animation system (thanks, Bjørn). - * data/graphics/sprites/monster*.xml: Added animation files for all - monsters. - * src/animation.cpp: The offset values of the Frames of animated - sprites are now modified so every frame is drawn centered. - * data/graphics/sprites/hairstyle*.xml: Retuned the offsets of the - hair sprites. - * src/animation.cpp: Small stability fix. - * src/being.cpp, src/being.h: weapon animation now uses the new - animation system. - * data/graphics/sprites/player_male_base.xml - data/graphics/sprites/player_female_base.xml - data/graphics/sprites/hairstyle*.xml: Tuned walk speed and added bow - animations. - -2006-07-03 Eugenio Favalli - - * src/being.cpp: Removed an unnecessary parameter. - -2006-07-03 Bjørn Lindeijer - - * data/graphics/sprites/Makefile.am: Updated to new xml files. - -2006-07-02 Philipp Sehmisch - - * src/localplayer.cpp: Fixed the "walking against walls" bug. - * src/animation.cpp src/animation.h: fixed the "sliding" bug and - removed some unused variables. - -2006-07-01 Philipp Sehmisch - - * src/being.cpp, src/being.h, src/player.cpp, src/player.h, - src/localplayer.cpp: Sprites are now stored in a vector instead of a - list, so they can be replaced a lot easier; added female playerset; - added hairstyles and colors. - * src/animation.cpp, src/animation.h: added support for variations, - variations are animations stored in the same spriteset with the same - layout and sequence but starting at another index. - * data/graphics/sprites/player_female_base.xml: Added xml file for - female characters. - * data/graphics/sprites/hairstyle0.xml, - data/graphics/sprites/hairstyle1.xml, - data/graphics/sprites/hairstyle2.xml, - data/graphics/sprites/hairstyle3.xml, - data/graphics/sprites/hairstyle4.xml, - data/graphics/sprites/hairstyle5.xml, - data/graphics/sprites/hairstyle6.xml, - data/graphics/sprites/hairstyle7.xml: Added xml files for all - hairstyles (these xml files are using the new variation feature). - * src/being.cpp, src/being.h, src/localplayer.cpp, src/player.cpp: The - beings now haven't got one, but a list of animated sprites (named - mSprites). At the moment it contains the hair and the base sprite. - * src/animation.cpp, src/animation,h: Fixed a crash when substituting - an undefined direction; renamed completeDirections method to - substituteAction. - * data/graphics/sprites/hairstyle0.xml: Made a xml file for the hair - animation. - -2006-06-29 Eugenio Favalli - - * data/items.xml, src/being.cpp, src/being.h src/net/beinghandler.cpp, - src/player.cpp: Clients get notified of equipping visible items. - * src/net/beinghandler.cpp: GCC 4 fix. - -2006-06-28 Philipp Sehmisch - - * src/animation.cpp, src/animation.h: Parser now works like described - on the wiki; the single animation phases are now stored in structures; - drawing call for animatiedSprites moved into the animatiedSprite - class. - * src/being.cpp, src/being.h, src/localplayer.cpp, src/player.cpp: - Renamed mAnimatedSprite to mBaseSprite to distinct it from hair-equip - and other sprites that will also be part of the class. - * src/player.cpp: Drawing call for animatiedSprites moved into the - animatiedSprite class; time now correctly passed in ms to the - animatedSprite class. - * src/graphic/spriteset.cpp, src/graphic/spriteset.h: Width and height - of the subimages is now saved in the spritesheet class. - * src/graphics.cpp: Added an additional check to avoid crashes when - passing a NULL pointer as image argument. - * data/graphics/sprites/player_male_base.xml: Animation file now has - the syntax described on the wiki. - -2006-06-27 Eugenio Favalli - - * data/graphics/sprites/Makefile.am, - data/graphics/sprites/player_male_base.xml, src/being.cpp, - src/being.h, src/engine.cpp, src/localplayer.cpp, src/main.cpp, - src/net/beinghandler.cpp, src/net/playerhandler.cpp, - src/resources/itemmanager.cpp, The Mana World.dev: Added a beginning - of a new animation system to slow down player walking. - * src/animation.cpp, src/animation.h: Forgot 2 files. - * src/being.cpp, src/gui/equipmentwindow.cpp, src/player.cpp: - Equipment window now show all the slots, and adapted visible shirts to - head (middle) equipments. - -2006-06-27 Frode Lindeijer - - * /tmw/trunk/data/graphics/sprites/player_male_base.png: - Fixed transparency issue with the north punching frames - -2006-06-26 Bjørn Lindeijer - - * src/net/messagein.cpp: Fixed the readString method (synchronized - with the server version by Guillaume Melquiond). - -2006-06-21 Eugenio Favalli - - * data/graphics/sprites/Makefile.am, - data/graphics/sprites/monster11.png, - data/graphics/sprites/monster17.png: Fixed attack animation of monster - 11 and added a new monster. - * data/graphics/sprites/Makefile.am, - data/graphics/sprites/player_female_base.png, src/being.cpp, - src/being.h, src/gui/char_select.cpp, src/gui/char_select.h, - src/gui/playerbox.cpp, src/gui/playerbox.h, src/gui/register.cpp, - src/main.cpp, src/net/beinghandler.cpp, src/net/charserverhandler.cpp, - src/player.cpp: Added female players. - -2006-06-19 Philipp Sehmisch - - * data/graphics/sprites/monster16.png: added the little pink monster - -2006-05-22 Eugenio Favalli - - * data/graphics/tiles/icecave.png, data/graphics/tiles/Makefile.am, - data/maps/Makefile.am, data/maps/new_10-1.tmx.gz, - data/maps/new_11-1.tmx.gz, data/maps/new_4-1.tmx.gz, - data/maps/new_5-1.tmx.gz, src/resources/itemmanager.cpp: A bunch of - updates to the world and disabled art and type xml parser checks since - they're not used. - -2006-05-21 Eugenio Favalli - - * The Mana World.dev: Updated dev-cpp project file. - -2006-05-17 Eugenio Favalli - - * data/graphics/sprites/npcs.png, data/graphics/tiles/Makefile.am, - data/graphics/snow_building.png, data/graphics/tiles/snowset.png, - data/maps/Makefile.am, data/maps/new_11-1.tmx.gz: New NPCs, new snow - tiles and village. - -2006-05-15 Björn Steinbrink - - * src/gui/item_amount.cpp: Set slider range to the real values instead - of mapping the amount between [0,1] and [1,max] all the time. - -2006-05-13 Bjørn Lindeijer - - * src/openglgraphics.cpp: Set color back to current color instead of - setting it to white. Fixes white rectangles in equipment window. - * src/being.cpp, src/being.h, src/player.cpp: Specify the color in - which speech and names are supposed to be drawn. Removed unused - mSpeechColor member. - -2006-05-12 Björn Steinbrink - - * src/being.cpp: Fixed initialization order in Being ctor. - -2006-05-12 Eugenio Favalli - - * data/graphics/sprites/item1202.png, - data/graphics/sprites/Makefile.am, src/being.cpp, src/being.h, - src/localplayer.cpp, src/localplayer.h, src/main.cpp, src/player.cpp, - The Mana World: You can now see the shirt when equipping a top - equipment. - -2006-05-05 Eugenio Favalli - - * src/gui/setup_video.cpp: Fixed some numeric conversions. - -2006-05-03 Eugenio Favalli - - * configure.ac, src/game.cpp, src/graphics.cpp, src/main.cpp, - src/openglgraphics.cpp, The Mana World: Increased fps limit - granularity and cleaned some code, fixed some xml library name in - Dev-C++ project file, switched version to 0.0.20. - * src/game.cpp, src/gui/setup.cpp, src/gui/setup_video.cpp, - src/gui/setup_video.h, src/main.cpp: FPS limit can now be set in setup - dialog. Default value for FPS is 50. (Code based on peoro's patch). - -2006-05-02 Eugenio Favalli - - * src/localplayer.cpp: Fixed the delay last move bug. - -2006-04-29 Eugenio Favalli - - * data/graphics/tiles/cave.png: Added tiles by yosuhara. - -2006-04-28 Philipp Sehmisch - - * data/graphics/tiles/Woodland_ground.png: Graphical update of the - woodland tileset. Paths improved, and tiles that were redunant - replaced by new dirt tiles. - * data/maps/new_9.1.tmx.gz: Modified because of changes in the tileset - layout (no new server sided walkmap required). - * data/graphics/sprites/monster11.png: Improved the shading of the - mushroom monster. - * data/graphics/sprites/monster15.png: Added dropshadow to the bat - monster (note that the version 0.0.19 live update overrides the - changed file). - -2006-04-04 Bjørn Lindeijer - - * ChangeLog: Converted to UTF-8. - * NEWS: Spelling correction. - * docs/INSTALL/debian.txt, docs/INSTALL/win32.txt: Updated with - respect to the move from CVS to Subversion. - -2006-03-25 Eugenio Favalli - - * src/gui/window.cpp: Added window resize patch by peoro. - -2006-03-21 Eugenio Favalli - - * The Mana World.dev: Updated project. - -2006-03-20 Björn Steinbrink - - * src/engine.cpp: Fixed a crash on map change. - -2006-03-20 Eugenio Favalli - - * src/gui/char_select.cpp: Fixed an include. - -2006-03-19 Björn Steinbrink - - * src/gui/register.h, src/gui/register.cpp: Fixed a memory leak and - removed some whitespace noise. - * src/lockedarray.h, src/game.cpp, src/gui/gui.cpp, - src/gui/browserbox.cpp, src/gui/register.cpp, - src/resources/resourcemanager.cpp: Removed some useless null pointer - checks. - * src/gui/login.cpp, src/gui/setup_audio.h, src/gui/setup.cpp, - src/gui/setup_audio.cpp, src/gui/setup_video.cpp, - src/gui/setup_video.h: Removed some duplicated initializations. - * src/gui/setup_audio.h, src/gui/setup.cpp, src/gui/setup_audio.cpp, - src/gui/setup_joystick.h, src/gui/setup_video.cpp, src/gui/setuptab.h, - src/gui/setup.h, src/gui/setup_joystick.cpp, src/gui/setup_video.h, - src/Makefile.am: Splitted setup window into manageable pieces - according to their tabs in the window. Fixed some memory leaks along - the way. Also fixed two settings not being stored on "apply". - -2006-03-18 Björn Steinbrink - - * src/gui/chat.cpp, src/gui/menuwindow.cpp, src/gui/skill.cpp, - src/gui/status.cpp: Use the window container instead of the graphics - class to calculate window positions. - * src/utils/dtor.h: Fixed indentation. - * src/configuration.cpp, src/log.cpp, src/main.cpp, src/being.cpp, - src/monster.cpp, src/gui/equipmentwindow.cpp, src/gui/sell.cpp, - src/gui/trade.cpp, src/gui/char_server.cpp, src/gui/setup.cpp, - src/gui/updatewindow.cpp, src/gui/char_select.cpp, - src/gui/ministatus.cpp, src/gui/debugwindow.cpp, - src/gui/tabbedcontainer.cpp, src/gui/inventorywindow.cpp, - src/gui/buy.cpp, src/gui/itemcontainer.cpp, src/gui/inttextbox.cpp, - src/gui/debugwindow.h, src/gui/status.cpp, src/gui/register.cpp, - src/net/chathandler.cpp, src/engine.cpp, src/utils/tostring.h, - src/Makefile.am: Added a toString conversion function. - -2006-03-15 Björn Steinbrink - - * src/engine.h, src/main.cpp, src/gui/equipmentwindow.cpp, - src/gui/window.cpp, src/gui/login.cpp, src/gui/listbox.h, - src/gui/chat.h, src/gui/ministatus.cpp, src/gui/chat.cpp, - src/gui/help.cpp, src/gui/itemcontainer.cpp, src/gui/listbox.cpp, - src/gui/checkbox.cpp, src/engine.cpp, src/resources/image.cpp: A bunch - of cosmetic changes. - * src/net/network.cpp: Fixed connection not being shut down completely - in case of an error. - -2006-03-13 Eugenio Favalli - - * src/main.cpp: Fixed skip update option. - -2006-03-13 Philipp Sehmisch - - * data/maps/new_7.1.tmx.gz: Fixed some map bugs (update of server - sided walkmap required!) - -2006-03-11 Eugenio Favalli - - * data/graphics/sprites/hairstyle1.png, - data/graphics/sprites/hairstyle2.png, - data/graphics/sprites/hairstyle3.png, - data/graphics/sprites/hairstyle4.png, - data/graphics/sprites/hairstyle6.png, - data/graphics/sprites/hairstyle7.png, - data/graphics/sprites/Makefile.am: Fixed some hair positions, added a - new style, updated makefile. - -2006-03-09 Björn Steinbrink - - * src/utils/dtor.h: Added guards. - * src/game.cpp, src/main.cpp, src/gui/connection.cpp, - src/gui/menuwindow.cpp, src/net/tradehandler.cpp, - src/net/playerhandler.cpp: Made all local action listeners structs and - moved them into anonymous namespaces. - * src/gui/connection.cpp, src/gui/newskill.cpp, - src/gui/chargedialog.cpp, src/gui/updatewindow.cpp, - src/gui/progressbar.h, src/gui/ministatus.cpp, - src/gui/progressbar.cpp, src/gui/status.cpp: Removed coordinate - arguments from ProgressBar ctor. - * src/openglgraphics.cpp, src/localplayer.cpp, src/game.cpp, - src/map.cpp, src/log.cpp, src/being.cpp, src/monster.cpp, src/sound.h, - src/graphics.cpp, src/gui/equipmentwindow.cpp, src/gui/sell.cpp, - src/gui/trade.cpp, src/gui/char_server.cpp, src/gui/window.cpp, - src/gui/login.cpp, src/gui/inttextbox.h, src/gui/chargedialog.h, - src/gui/focushandler.h, src/gui/skill.h, src/gui/gui.cpp, - src/gui/newskill.cpp, src/gui/register.h, src/gui/popupmenu.h, - src/gui/setup.cpp, src/gui/npclistdialog.h, src/gui/chargedialog.cpp, - src/gui/playerbox.h, src/gui/char_select.cpp, src/gui/login.h, - src/gui/focushandler.cpp, src/gui/chat.h, src/gui/inventorywindow.h, - src/gui/newskill.h, src/gui/ministatus.cpp, src/gui/buy.h, - src/gui/playerbox.cpp, src/gui/setup.h, src/gui/itemcontainer.h, - src/gui/debugwindow.cpp, src/gui/chat.cpp, src/gui/char_select.h, - src/gui/inventorywindow.cpp, src/gui/help.cpp, src/gui/status.h, - src/gui/buy.cpp, src/gui/itemcontainer.cpp, src/gui/equipmentwindow.h, - src/gui/sell.h, src/gui/trade.h, src/gui/ministatus.h, - src/gui/inttextbox.cpp, src/gui/char_server.h, src/gui/window.h, - src/gui/skill.cpp, src/gui/debugwindow.h, src/gui/status.cpp, - src/gui/register.cpp, src/gui/popupmenu.cpp, src/gui/minimap.cpp, - src/gui/npclistdialog.cpp, src/gui/help.h, src/net/buysellhandler.cpp, - src/net/beinghandler.cpp, src/net/charserverhandler.cpp, - src/net/maploginhandler.cpp, src/net/playerhandler.cpp, - src/engine.cpp, src/localplayer.h, src/beingmanager.cpp, src/map.h, - src/log.h, src/sound.cpp, src/resources/itemmanager.h, - src/resources/buddylist.cpp, src/resources/buddylist.h, - src/resources/image.cpp, src/resources/image.h, - src/resources/itemmanager.cpp, src/being.h, src/player.cpp: Made all - class members named like mClassMember. - * src/floor_item.cpp, src/map.cpp, src/being.cpp, - src/gui/equipmentwindow.cpp, src/gui/playerbox.cpp, - src/gui/itemcontainer.cpp, src/graphic/spriteset.cpp, - src/graphic/spriteset.h, src/player.cpp: Added Spriteset::get() and - Spriteset::size() to hide the member vector and remove the weird - mySpriteset->spriteset stuff. - * src/gui/buddywindow.cpp, src/gui/connection.cpp, src/gui/sell.cpp, - src/gui/trade.cpp, src/gui/char_server.cpp, src/gui/login.cpp, - src/gui/button.h, src/gui/newskill.cpp, src/gui/setup.cpp, - src/gui/updatewindow.cpp, src/gui/button.cpp, src/gui/char_select.cpp - ,src/gui/item_amount.cpp, src/gui/npc_text.cpp, src/gui/ok_dialog.cpp, - src/gui/confirm_dialog.cpp, src/gui/debugwindow.cpp, - src/gui/tabbedcontainer.cpp, src/gui/inventorywindow.cpp, - src/gui/help.cpp, src/gui/menuwindow.cpp, src/gui/buy.cpp, - src/gui/skill.cpp, src/gui/buysell.cpp, src/gui/status.cpp, - src/gui/register.cpp, src/gui/npclistdialog.cpp: Made the Button ctor - accept eventId and action listener. - * src/localplayer.cpp, src/game.cpp, src/gui/trade.cpp, - src/gui/inventorywindow.cpp, src/gui/trade.h, src/localplayer.h, - src/game.h: Use std::auto_ptr in some places. - * src/lockedarray.h: Use fill_n instead of for-loop. - * src/gui/browserbox.cpp: Make the MouseOverLink functor dynamic and - use a STL algorithm in one more place. - -2006-03-08 Bjørn Lindeijer - - * src/gui/browserbox.h, src/gui/menuwindow.cpp, src/gui/buysell.cpp: - Some fixes for compiling with pedantic compiler settings and const - char* checks. - * data/graphics/sprites/player_male_base.png: Use two rows for each - direction in order to make the texture less wide so that it stays - within the 1024 texture limit for OpenGL mode. - -2006-03-08 Björn Steinbrink - - * src/map.cpp, src/main.cpp, src/gui/button.cpp, - src/gui/textfield.cpp, src/gui/playerbox.cpp, - src/gui/windowcontainer.cpp, src/gui/skill.cpp, - src/gui/scrollarea.cpp, src/engine.cpp, src/beingmanager.cpp, - src/utils, src/utils/dtor.h, src/Makefile.am, - src/flooritemmanager.cpp, src/graphic/spriteset.cpp: Added a 'dtor' - helper functor to delete objects in arrays and containers using STL - algorithms. - * src/resources/image.cpp: Removed some conditional code. - * src/localplayer.cpp, src/gui/gui.cpp: Reverted changes from r2225, - it broke walking code as I missed the differences between tile and - being collisions. - * src/gui/itemcontainer.cpp, src/inventory.cpp: Made Inventory use STL - algorithms and fixed getLastUsedSlot semantics. - * src/engine.cpp, src/engine.h: Moved a variable definition into the - right place and made getCurrentMap inline. - * src/equipment.cpp, src/equipment.h: Use STL algorithms and make - destructor inline. - * src/localplayer.cpp, src/gui/gui.cpp: Let the LocalPlayer decide - whether it can walk to a destination. - -2006-03-07 Yohann Ferreira - - * debian/rules, debian/changelog, ChangeLog: Updating Debian files for - 0.0.19 release. - -2006-03-07 Eugenio Favalli - - * data/graphics/tiles/Makefile.am, data/graphics/tiles/Woodland.png: - Removed unused tileset. - -2006-03-06 Björn Steinbrink - - * configure.ac: Version changed to 0.0.19. - -2006-03-06 Philipp Sehmisch - - * data/maps/new_9.1.tmx.gz: Fixed some mapping bugs. - -2006-03-06 Eugenio Favalli - - * AUTHORS, NEWS, README, data/help/changes.txt, data/help/header.txt, - data/help/team.txt: A bunch of updates to docs, ready for 0.0.19. - * data/help/changes.txt, src/main.cpp: Small fixes before releasing. - -2006-03-05 Björn Steinbrink - - * data/graphics/sprites/Makefile.am: Remove trailing whitespace. - * src/engine.cpp: Re-add main.h header, Windows build needs it. - -2006-03-05 Eugenio Favalli - - * data/graphics/sprites/player_male_base.png: Added pants. - -2006-03-02 Eugenio Favalli - - * data/graphics/sprites/weapon1.png: Added missing frames. - * src/player.cpp: Fixed north shooting hair position. - * data/graphics/sprites/Makefile.am: Added new graphics. - * data/graphics/sprites/monster15.png: Added bat monster. - -2006-03-01 Eugenio Favalli - - * The Mana World.dev: Enabled -Wall switch. - * data/graphics/sprites/monster9.png: Fixed fire goblin north walking - animation. - * data/graphics/sprites/hairstyle1.png, - data/graphics/sprites/hairstyle2.png, - data/graphics/sprites/hairstyle3.png, - data/graphics/sprites/hairstyle4.png, - data/graphics/sprites/hairstyle5.png, - data/graphics/sprites/hairstyle6.png, - data/graphics/sprites/player_male_base.png, - data/graphics/sprites/weapon0.png, - data/graphics/sprites/weapon1.png: New graphics for hair styles, - player and weapons. - * src/being.cpp, src/being.h, src/engine.cpp, src/gui/playerbox.cpp, - src/localplayer.cpp, src/main.cpp, beinghandler.cpp, player.cpp, - src/resources/image.cpp: Hacked code to support the new playerset. - -2006-02-25 Björn Steinbrink - - * src/beingmanager.cpp, src/beingmanager.h, src/engine.cpp, - src/main.h, src/sound.h: Added a logic method to the being manager. - -2006-02-24 Björn Steinbrink - - * src/being.cpp, src/being.h, src/configuration.cpp, - src/configuration.h, src/engine.cpp, src/map.cpp, src/map.h, - src/properties.h, src/gui/browserbox.cpp, src/gui/browserbox.h, - src/gui/chat.cpp, src/gui/chat.h, src/gui/gccontainer.cpp, - src/gui/gccontainer.h, src/gui/minimap.cpp, - src/gui/tabbedcontainer.cpp, src/gui/tabbedcontainer.h, - src/net/network.cpp, src/net/network.h, src/resources/itemmanager.cpp, - src/resources/itemmanager.h: Another bunch of cosmetic cleanups, i.e. - mostly typedefs... - -2006-02-23 Björn Steinbrink - - * src/being.cpp, src/being.h, src/beingmanager.cpp, - src/beingmanager.h, src/engine.cpp, src/inventory.cpp, - src/inventory.h, src/logindata.h, src/main.cpp, src/main.h, - src/openglgraphics.cpp, src/gui/equipmentwindow.h, - src/gui/minimap.cpp, src/gui/minimap.h, src/gui/windowcontainer.cpp, - src/gui/windowcontainer.h, src/net/loginhandler.cpp: A bunch of mostly - cosmetic cleanups. - -2006-02-23 Philipp Sehmisch - - * data/maps/new_4.1.tmx.gz: I remapped the hermits cave. It looks much - more natural now. A new server sided walkmap is required. - -2006-02-22 Philipp Sehmisch - - * data/graphics/tiles/cave.png: fixed two almost invisible pixel - errors - -2006-02-21 Philipp Sehmisch - - * data/maps/new_9.1.tmx.gz: fixed another map bug. - -2006-02-05 Yohann Ferreira - - * src/resources/itemmanager.cpp: Added warnings when parameters are - missing in the items xml file. - -2006-02-16 Björn Steinbrink - - * src/gui/browserbox.cpp, src/gui/browserbox.h, src/gui/gui.cpp: Use - Widget::mFont instead of browerFont for drawing, fixes the "gui - needs to be valid real early" issue. - -2006-02-07 Björn Steinbrink - - * src/being.cpp, src/being.h, src/game.cpp, src/localplayer.cpp, - src/localplayer.h, src/monster.cpp, src/player.cpp, - src/net/messagein.cpp, src/net/protocol.cpp: Made the being directions - being stored in a bitfield. - -2006-02-06 Philipp Sehmisch - - * data/graphics/tiles/Woodland_ground.png, - data/graphics/tiles/Woodland_x2.png, data/maps/new_9.1.tmx.gz: added - dynamic grass that covers the lower area of sprites (doesn't work for - flower beds yet). - -2006-02-06 Eugenio Favalli - - * The Mana World.dev, src/net/tradehandler.cpp: Updated Dev-Cpp project - file, fixed a gcc 3.4 issue. - * src/net/tradehandler.cpp: Undone last changes because Bertram - already fixed the compiler issue. - -2006-02-06 Björn Steinbrink - - * src/Makefile.am, src/game.cpp, src/joystick.cpp, src/joystick.h, - src/gui/setup.cpp, src/gui/setup.h: Added a Joystick class. - * src/being.cpp, src/being.h, src/monster.cpp, src/npc.cpp: Unify some - of the drawing code for beings. - * src/being.cpp, src/being.h, src/localplayer.h, src/player.cpp, - src/player.h: Use virtual methods instead of getType() checks. - * data/graphics/gui/browserfont.png, - data/graphics/gui/fixedfont.png, data/graphics/gui/rpgfont_wider.png, - data/graphics/gui/sansserif8.png, src/Makefile.am, src/engine.cpp, - src/floor_item.cpp, src/floor_item.h, src/flooritemmanager.cpp, - src/flooritemmanager.h, src/game.cpp, src/gui/gui.cpp, - src/net/itemhandler.cpp: Introduced a FloorItemManager class. - -2006-02-05 Yohann Ferreira - - * data/graphics/gui/rpgfont_wider.png, - data/graphics/gui/fixedfont.png,data/graphics/gui/browserfont.png, - data/graphics/gui/sansserif8.png: Adding è accents mostly to the font - images. - * src/engine.cpp, src/being.h, src/being.cpp, src/player.cpp, - src/gui/char_select.h, src/gui/char_select.cpp: Made the nickname and - emotions displayed above every layers. Made the delete and ok buttons - be disabled once the character is selected at login. - * src/net/tradehandler.cpp, src/resources/itemmanager.cpp: Fixed a gcc - 4.0 issue in the tradehandler. Strengthen the xml parser in the - itemmanager so tmw doesn't crash anymore if an item lacks some - parameters. - -2006-02-05 Bjørn Lindeijer - - * INSTALL: Updated dependencies in response to patch by Hanno Braun. - -2006-02-05 Björn Steinbrink - - * data/graphics/tiles/Makefile.am: Added the new tilesets. - * src/localplayer.cpp, src/localplayer.h, src/gui/gui.cpp: Made the - player walk to items prior to picking them up. - -2006-02-04 Philipp Sehmisch - - * data/graphics/tiles/Woodland.png: new path design - * data/graphics/tiles/Woodland_ground.png, - data/graphics/tiles/Woodland_x2.png, - data/graphics/tiles/Woodland_x3.png: splitted the tileset into three - tilesets with different tile sizes - (i kept the original tileset for backward compatiblity) - * data/maps/new_9.1.tmx.gz: remapped with the oversized tile - technology. made the forests less regular. made the unwalkable map - borders more visual appealing - -2006-02-04 Björn Steinbrink - - * src/localplayer.h, src/logindata.h, src/main.cpp, src/main.h, - src/gui/char_select.cpp, src/gui/char_server.cpp, - src/gui/char_server.h, src/net/charserverhandler.cpp, - src/net/charserverhandler.h, src/net/loginhandler.cpp, - src/net/loginhandler.h, src/net/network.cpp, src/net/network.h: Unify - the gui code for the various logins to use LoginData. - -2006-02-03 Björn Steinbrink - - * src/logindata.h, src/main.cpp, src/gui/login.cpp, src/gui/login.h: - Made the login dialog work on LoginData only, without playing with the - config, it's not its job to do so. - * src/net/protocol.cpp, src/net/protocol.h: Removed some unused code. - -2006-02-02 Philipp Sehmisch - - * data/graphics/tiles/desert1.png, data/graphics/tiles/desert2.png, - data/graphics/tiles/desert_x2.png, data/graphics/tiles/desert_x3.png: - Replaced the old sand tile with Irucards new one. Added new crates. - Made some minor corrections. - -2006-02-01 Björn Steinbrink - - * src/game.cpp, src/game.h, src/main.cpp: Created a Game class. - * src/gui/passwordfield.cpp: Removed duplicated code. - * src/Makefile.am, src/main.cpp, src/gui/error.cpp, src/gui/error.h: - Replaced ErrorDialog by OkDialog + listener. - * src/Makefile.am, src/game.cpp, src/gui/buysell.cpp, - src/gui/char_select.cpp, src/gui/confirm_dialog.cpp, - src/gui/confirm_dialog.h, src/gui/login.cpp, src/gui/login.h, - src/gui/menuwindow.cpp, src/gui/ok_dialog.cpp, src/gui/ok_dialog.h, - src/gui/register.cpp, src/gui/requesttrade.cpp, - src/gui/requesttrade.h, src/gui/setup.cpp, src/net/playerhandler.cpp, - src/net/tradehandler.cpp: Made the OkDialog and ConfirmDialog classes - proxies for their buttons' events. Removed the RequestTradeWindow - class, replaced with a plain ConfirmDialog. Fixed a memory leak along - the way. - - * src/gui/buysell.cpp, src/gui/menuwindow.cpp: Simplified button - creation code. - * src/gui/npc_text.cpp: Fixed a bug where the game crashes if there's a - message dialog from a npc that no longer exists. - * src/properties.h: Reverted properties to private. - -2006-01-31 Björn Steinbrink - - * src/gui/setup.cpp: Cleanup. - * src/gui/requesttrade.cpp, src/gui/requesttrade.h: Made - RequestTradeDialog inherit from ConfirmDialog. - * src/Makefile.am, src/gui/buy.cpp, src/gui/buy.h, src/gui/sell.cpp, - src/gui/sell.h, src/gui/shop.cpp, src/gui/shop.h: Created a ListModel - for ShopItems. - * src/floor_item.cpp, src/graphics.h, src/map.cpp, src/map.h, - src/properties.h, src/sprite.h, src/gui/login.cpp, - src/gui/scrollarea.cpp, src/gui/windowcontainer.cpp, - src/resources/sdlimageloader.cpp: Various small cleanups. - * src/resources/resource.cpp, src/resources/resourcemanager.cpp, - src/resources/resource.h, src/resources/resourcemanager.h: Made - ResourceManager a friend of Resource to avoid looping over decRef, - which returns void now. - -2006-01-30 Björn Steinbrink - - * src/gui/char_select.cpp, src/gui/confirm_dialog.cpp, - src/gui/confirm_dialog.h, src/gui/error.cpp, src/gui/error.h, - src/gui/ministatus.cpp, src/gui/ok_dialog.cpp, src/gui/ok_dialog.h, - src/gui/setup.cpp, src/net/charserverhandler.cpp: A few cleanups and - simplifications. - -2006-01-26 Björn Steinbrink - - * src/game.cpp, src/game.h, src/main.cpp: Moved some setup code out of - the game loop into the setup functions. Setup functions are now called - from the outside. - -2006-01-22 Eugenio Favalli - - * The Mana World.dev, src/main.cpp: Updated Dev-Cpp project file, fixed - a GDI issue. - -2006-01-22 Björn Steinbrink - - * src/game.cpp, src/net/network.cpp: Make dispatchMessages actually - handle more than one message per call. - * src/main.cpp: Remove obsoleted action listeners. - * src/main.cpp: Use generic error method for sound failure. - * src/main.cpp, src/net/charserverhandler.cpp, - src/net/loginhandler.cpp, src/net/maploginhandler.cpp, - src/net/network.cpp: Unify some network stuff in the main loop and fix - a bug in the network class that triggers when a handlers survives the - network object. - -2006-01-21 Bjørn Lindeijer - - * src/gui/browserbox.cpp: Applied a patch by Ar2ro that works around - the problems with line wrapping in the chatbox. Note though that this - while code should be properly rewritten later. - -2006-01-20 Eugenio Favalli - - * The Mana World.dev: Updated Dev-Cpp project file. - -2006-01-20 Björn Steinbrink - - * src/equipment.h, src/game.cpp, src/game.h, src/main.h, - src/gui/buddywindow.cpp, src/gui/buddywindow.h, - src/gui/chargedialog.h, src/gui/connection.cpp, src/gui/connection.h, - src/gui/equipmentwindow.cpp, src/gui/equipmentwindow.h, - src/gui/linkhandler.h, src/gui/ministatus.h, src/gui/register.h, - src/net/protocol.h, src/resources/mapreader.h: Header, class - declaration and include cleanup. - * src/localplayer.cpp, src/localplayer.h, src/gui/requesttrade.cpp, - src/net/tradehandler.cpp: Made the local player object care about its - trading state, later this could be used for different stuff, like the - player setting itself to auto-decline trade offers without messing up - the code in the tradehandler. Removed message sending code from the - trade handler. - * src/npc.cpp, src/npc.h: Added the files for real this time. - * src/npc.cpp, src/npc.h, src/Makefile.am, src/being.cpp, - src/beingmanager.cpp, src/beingmanager.h, src/engine.cpp, - src/engine.h, src/game.cpp, src/game.h, src/localplayer.cpp, - src/localplayer.h, src/map.cpp, src/gui/buy.cpp, src/gui/buysell.cpp, - src/gui/buysell.h, src/gui/gui.cpp, src/gui/minimap.cpp, - src/gui/npc.cpp, src/gui/npc.h, src/gui/npc_text.cpp, - src/gui/npc_text.h, src/gui/npclistdialog.cpp, - src/gui/npclistdialog.h, src/gui/popupmenu.cpp, - src/gui/requesttrade.cpp, src/gui/requesttrade.h, src/gui/sell.cpp, - src/gui/setup.cpp, src/gui/skill.cpp, src/gui/skill.h, - src/gui/status.cpp, src/gui/status.h, src/net/buysellhandler.cpp, - src/net/charserverhandler.cpp, src/net/chathandler.cpp, - src/net/equipmenthandler.cpp, src/net/npchandler.cpp, - src/net/playerhandler.cpp, src/net/protocol.cpp, - src/net/tradehandler.cpp: Added a class for NPCs. Removed network - stuff from a bunch of gui dialog classes. Cleaned up some gui class - declarations and checked a bunch of includes for being useless. - -2006-01-19 Eugenio Favalli - - * INSTALL, README, The Mana World.dev, data/help/support.txt, - docs/INSTALL/debian.txt, docs/INSTALL/win32.txt, docs/progression.txt: - Updated infos on new irc channel. - -2006-01-14 Björn Steinbrink - - * src/main.cpp, src/main.h, src/gui/char_server.cpp, - src/gui/char_server.h: Moved network code out of the - ServerSelectDialog. - * src/gui/char_select.cpp, src/gui/char_select.h: Change setPlayerInfo - to updatePlayerInfo, as there's now a convenient wrapper around the - plain data. - * src/Makefile.am, src/lockedarray.cpp, src/lockedarray.h, - src/main.cpp, src/gui/char_select.cpp, src/gui/char_select.h, - src/gui/char_server.cpp, src/net/charserverhandler.cpp, - src/net/charserverhandler.h, src/net/network.cpp, src/net/network.h: - Created a single CharServerHandler. Created a LockedArray class to - "synchronize" access to arrays. Moved a bunch of networking out of the - char server related gui classes. - * src/Makefile.am, src/logindata.h, src/main.cpp, src/main.h, - src/gui/login.cpp, src/gui/login.h, src/gui/register.cpp, - src/gui/register.h: Removed network code from login and register - dialogs. - * src/gui/login.cpp, src/gui/login.h: Removed unused var. - * src/main.cpp, src/gui/char_select.cpp, src/gui/char_select.h, - src/gui/char_server.cpp, src/gui/char_server.h, - src/gui/connection.cpp, src/gui/connection.h, src/gui/error.cpp, - src/gui/error.h, src/gui/login.cpp, src/gui/login.h, - src/gui/register.cpp, src/gui/register.h, src/gui/updatewindow.cpp, - src/gui/updatewindow.h: Removed the pre-game input handlers and - unified them in main.cpp. Some header and class cleanups. - * src/net/maploginhandler.cpp, src/net/maploginhandler.h, - src/Makefile.am, src/engine.cpp, src/engine.h, src/game.cpp, - src/main.cpp, src/gui/connection.cpp, src/gui/connection.h, - src/net/playerhandler.cpp: Made changeMap() care about sending the - map-loaded message. Removed network stuff from connection dialog. - -2006-01-13 Björn Steinbrink - - * src/Makefile.am, src/gui/login.cpp, src/gui/login.h, - src/gui/register.cpp, src/net/loginhandler.cpp, - src/net/loginhandler.h: Remove duplicated code by unifying the message - handlers for login and register. - * src/gui/char_server.cpp, src/gui/char_server.h: Removed the polling - loop. - * src/gui/char_select.cpp, src/gui/char_select.h: Remove destructor - again, no idea why the compiler complained earlier. - * src/gui/char_select.cpp, src/gui/char_select.h: Created a message - handler for character creation and cleaned up the header file. - * src/gui/register.cpp, src/gui/register.h: Added a message handler - and removed the polling loop. - * src/net/network.cpp: Add recognition of disconnects. - * src/gui/connection.cpp, src/gui/connection.h, - src/net/playerhandler.cpp: Removed the polling loop and the duplicate - login message handler. - * src/gui/login.cpp, src/gui/login.h: Remove polling loop, the new - network code takes care of all that. - * src/net/network.cpp: Make sure that we don't send anything when not - connected. - * src/gui/login.cpp: Added a handler for network messages. - * src/game.cpp, src/net/beinghandler.cpp, src/net/beinghandler.h, - src/net/buysellhandler.cpp, src/net/buysellhandler.h, - src/net/chathandler.cpp, src/net/chathandler.h, - src/net/equipmenthandler.cpp, src/net/equipmenthandler.h, - src/net/inventoryhandler.cpp, src/net/inventoryhandler.h, - src/net/itemhandler.cpp, src/net/itemhandler.h, - src/net/messagehandler.cpp, src/net/messagehandler.h, - src/net/npchandler.cpp, src/net/npchandler.h, - src/net/playerhandler.cpp, src/net/playerhandler.h, - src/net/skillhandler.cpp, src/net/skillhandler.h, - src/net/tradehandler.cpp, src/net/tradehandler.h: Reverted the patch - to make the handlers register themselves, this just cannot work. - * src/game.cpp: Small cleanup. - * src/game.cpp, src/localplayer.cpp, src/localplayer.h: Made emote() a - method of the LocalPlayer class. - -2006-01-12 Björn Steinbrink - - * src/game.cpp, src/main.cpp, src/net/beinghandler.cpp, - src/net/beinghandler.h, src/net/buysellhandler.cpp, - src/net/buysellhandler.h, src/net/chathandler.cpp, - src/net/chathandler.h, src/net/equipmenthandler.cpp, - src/net/equipmenthandler.h, src/net/inventoryhandler.cpp, - src/net/inventoryhandler.h, src/net/itemhandler.cpp, - src/net/itemhandler.h, src/net/messagehandler.cpp, - src/net/messagehandler.h, src/net/npchandler.cpp, - src/net/npchandler.h, src/net/playerhandler.cpp, - src/net/playerhandler.h, src/net/skillhandler.cpp, - src/net/skillhandler.h, src/net/tradehandler.cpp, - src/net/tradehandler.h: Added a constructor parameter to the - MessageHandler class to support it self-registering to a network. - * src/game.cpp, src/net/beinghandler.cpp, src/net/network.cpp, - src/net/network.h, src/net/playerhandler.cpp: Moved the last few - messages out of the game loop into handlers. Added logging of - unhandled messages to the network class. - * src/Makefile.am, src/game.cpp, src/net/skillhandler.cpp, - src/net/skillhandler.h: Added a dedicated handler for skill messages. - * src/game.cpp, src/net/beinghandler.cpp: Moved some messages into the - being message handler. - * src/net/playerhandler.cpp: Fixed death listener. - * src/Makefile.am, src/game.cpp, src/net/playerhandler.cpp, - src/net/playerhandler.h: Added a dedicated handler for player - messages. - * src/game.cpp, src/net/chathandler.cpp: Moved WHO answer and some MVP - thing into the chat handler. - * src/Makefile.am, src/game.cpp, src/net/npchandler.cpp, - src/net/npchandler.h: Added a dedicated handler for npc messages. - * src/Makefile.am, src/game.cpp, src/net/itemhandler.cpp, - src/net/itemhandler.h: Added a dedicated handler for item messages. - * src/net/messagehandler.cpp, src/Makefile.am, src/game.cpp, - src/gui/char_select.cpp, src/gui/char_server.cpp, - src/gui/connection.cpp, src/net/messagehandler.h, src/net/network.cpp, - src/net/tradehandler.cpp, src/net/tradehandler.h: Made the - MessageHandler class aware of the network it is listening to and - unregistering itself. - * src/Makefile.am, src/beingmanager.cpp, src/beingmanager.h, - src/engine.cpp, src/game.cpp, src/net/beinghandler.cpp, - src/net/beinghandler.h: Added a dedicated handler for being messages. - Made the beingManager care about map changes. - * src/net/network.cpp: Removed some debug output. - * src/Makefile.am, src/game.cpp, src/net/inventoryhandler.cpp, - src/net/inventoryhandler.h: Added a dedicated handler for inventory - messages. - * src/game.cpp, src/inventory.cpp, src/inventory.h, - src/localplayer.cpp, src/localplayer.h, src/gui/trade.cpp, - src/net/buysellhandler.cpp, src/net/equipmenthandler.cpp, - src/net/tradehandler.cpp: Added delegation methods for inventory stuff - to the LocalPlayer class. Removed some unneeded includes. - * src/Makefile.am, src/game.cpp, src/net/equipmenthandler.cpp, - src/net/equipmenthandler.h: Added a dedicated handler for equipment - messages. - * src/game.cpp, src/localplayer.h: Removed unions, array are indexed - by the existing enums now. - * src/Makefile.am, src/game.cpp, src/net/buysellhandler.cpp, - src/net/buysellhandler.h: Added a dedicated handler for buy and sell - messages. - * src/Makefile.am, src/game.cpp, src/net/chathandler.cpp, - src/net/chathandler.h, src/net/tradehandler.cpp: Added a dedicated - handler for chat messages. - -2006-01-11 Björn Steinbrink - - * src/Makefile.am, src/game.cpp, src/game.h, src/gui/popupmenu.cpp, - src/gui/requesttrade.h, src/net/messagehandler.h, src/net/network.cpp, - src/net/network.h, src/net/tradehandler.cpp, src/net/tradehandler.h: - Added a dedicated handler for trade messages. - * gui/char_select.cpp, gui/char_server.cpp, gui/connection.cpp, - net/messagehandler.h, net/network.cpp: Fixed a memory leak. - * src/Makefile.am, src/game.cpp, src/localplayer.cpp, src/main.cpp, - src/gui/char_select.cpp, src/gui/char_select.h, - src/gui/char_server.cpp, src/gui/char_server.h, - src/gui/connection.cpp, src/gui/connection.h, src/gui/gui.cpp, - src/gui/popupmenu.cpp, src/net/messagehandler.h, src/net/network.cpp, - src/net/network.h, src/net/protocol.cpp, src/net/protocol.h: Fixed - networking thread. Made skip calls queuable. Added MessageHandler base - class and added derived message handlers for some stuff. - * src/being.h, src/beingmanager.cpp, src/beingmanager.h, - src/game.cpp, src/game.h, src/localplayer.cpp, src/localplayer.h, - src/main.cpp, src/gui/buy.cpp, src/gui/buy.h, src/gui/buysell.cpp, - src/gui/buysell.h, src/gui/char_select.cpp, src/gui/char_select.h, - src/gui/char_server.cpp, src/gui/char_server.h, src/gui/chat.cpp, - src/gui/chat.h, src/gui/connection.cpp, src/gui/connection.h, - src/gui/gui.cpp, src/gui/login.cpp, src/gui/login.h, src/gui/npc.cpp, - src/gui/npc.h, src/gui/npc_text.cpp, src/gui/npc_text.h, - src/gui/popupmenu.cpp, src/gui/register.cpp, src/gui/register.h, - src/gui/requesttrade.cpp, src/gui/requesttrade.h, src/gui/sell.cpp, - src/gui/sell.h, src/gui/skill.cpp, src/gui/skill.h, - src/gui/status.cpp, src/gui/status.h, src/gui/trade.cpp, - src/gui/trade.h, src/net/messageout.cpp, src/net/messageout.h, - src/net/network.cpp, src/net/network.h, src/net/protocol.cpp, - src/net/protocol.h: Created a network class. - -2006-01-10 Philipp Sehmisch - - * data/graphics/tiles/Woodland.png: color modifications - * data/maps/new_9-1.tmx.gz: some more errors fixed - -2006-01-09 Eugenio Favalli - - * src/game.cpp: Fixed canceled/cancelled inconsistency. - -2006-01-08 Björn Steinbrink - - * src/floor_item.cpp, src/floor_item.h, src/game.cpp, - src/localplayer.cpp, src/localplayer.h, src/gui/gui.cpp, - src/gui/popupmenu.cpp, src/net/protocol.cpp, src/net/protocol.h: Made - find_floor_item_by_cor return the item instead of its id. Made pickUp - a method of the LocalPlayer class. - * equipment.cpp, equipment.h, game.cpp, inventory.cpp, inventory.h, - localplayer.cpp, localplayer.h, gui/equipmentwindow.cpp, - gui/inventorywindow.cpp, gui/item_amount.cpp, gui/popupmenu.cpp: Made - inventory and equipment properties of the LocalPlayer class. - * src/game.cpp, src/game.h, src/gui/connection.cpp: Removed some - globals. - -2006-01-07 Björn Steinbrink - - * src/game.cpp, src/localplayer.cpp, src/localplayer.h: Created a walk - method for LocalPlayer. - -2006-01-07 Eugenio Favalli - - * data/maps/new_9-1.tmx.gz: Crush fixed the issues reported on wiki. - * The Mana World.dev, src/game.cpp, src/gui/setup.cpp, src/gui/setup.h, - src/main.cpp: Removed --skipupdate option from Dev.Cpp project file, - splitted the setup window into 3 tabs and added a joystick calibration - tool. - -2006-01-06 Björn Steinbrink - - * src/game.cpp, src/localplayer.cpp: Changed semantics for auto - target. The player now keeps attacking the select target till he - selects an other one, and not just by running into another one. - * src/being.cpp, src/beingmanager.cpp, src/beingmanager.h, - src/game.cpp, src/localplayer.h, src/gui/char_select.cpp, - src/gui/char_server.cpp: Fix local player id being wrongly assigned - causing various issues. - * src/gui/status.cpp: Fix attributes not being shown. - * src/Makefile.am, src/being.cpp, src/being.h, src/beingmanager.cpp, - src/beingmanager.h, src/engine.cpp, src/game.cpp, src/game.h, - src/localplayer.cpp, src/localplayer.h, src/main.cpp, src/map.cpp, - src/monster.cpp, src/monster.h, src/player.cpp, src/player.h, - src/playerinfo.h, src/gui/char_select.cpp, src/gui/char_select.h, - src/gui/char_server.cpp, src/gui/chargedialog.cpp, src/gui/chat.cpp, - src/gui/gui.cpp, src/gui/inventorywindow.cpp, src/gui/minimap.cpp, - src/gui/ministatus.cpp, src/gui/popupmenu.cpp, src/gui/skill.cpp, - src/gui/status.cpp, src/gui/status.h, src/net/protocol.cpp, - src/net/protocol.h: Created subclasses of the Being class to move - specific code there. Added a BeingManager to remove use of globals. - Moved PLAYERINFO stuff into the new LocalPlayer class. - -2006-01-05 Björn Steinbrink - - * engine.cpp, engine.h, game.cpp, game.h, gui/buysell.h, - gui/chargedialog.h, gui/debugwindow.cpp, gui/debugwindow.h, gui/gui.h, - gui/ministatus.h, gui/npc_text.h, gui/sell.h, gui/setup.h: Remove some - useless code. - -2006-01-04 Eugenio Favalli - - * src/Makefile.am, src/gui/char_select.cpp, src/gui/char_select.h, - src/gui/char_server.cpp, src/gui/confirm_dialog.cpp, - src/gui/confirm_dialog.h, src/gui/ok_dialog.cpp, src/gui/ok_dialog.h, - src/gui/trade.cpp, src/playerinfo.h: Reverted r0nny changes, enabled 3 - slots to create players, smoothed player deletion. - -2006-01-04 Icy - - * src/game.cpp, src/main.cpp, src/main.h: FreeBSD fixes to The Mana - World. - -2006-01-03 Eugenio Favalli - - * src/game.cpp, src/gui/chat.cpp, src/gui/chat.h, src/gui/login.cpp, - src/gui/trade.cpp: Really disabled /commands and added proper message - when logging in and banned. - * src/game.cpp, src/gui/chat.cpp, src/gui/chat.h, src/net/protocol.h: - Enabled some /commands. - * src/main.cpp: Fixed a compile warning with GCC 4.1. - -2006-01-02 Eugenio Favalli - - * src/gui/char_select.cpp, src/gui/char_select.h, - src/gui/char_server.cpp, src/gui/login.cpp, src/gui/register.cpp: - Smoothed also character creation, buttons are now disabled during - connection/data phase. - -2006-01-01 Björn Steinbrink - - * src/gui/login.cpp, src/gui/login.h: Remove tracking of OkDialog, the - garbage collection stuff takes care of deletion and breaks manual - tracking. - -2006-01-01 Bjørn Lindeijer - - * src/main.cpp: Applied patch by pclouds that allows for a faster - login sequence by providing the username and password from the command - line, and allowing the client to choose the default server and - character. - -2005-12-30 Bjørn Lindeijer - - * src/gui/chat.cpp, src/gui/chat.h: Applied patch by pclouds to have - the chat window temporarily become visible when chatting while it is - hidden. - -2005-12-30 Eugenio Favalli - - * The Mana World.dev, data/graphics/sprites/items.png, - data/items.xml, src/Makefile.am, src/gui/char_select.cpp, - src/gui/char_server.cpp, src/gui/login.cpp, src/gui/login.h, - src/main.cpp, src/main.h, src/net/network.cpp, src/net/network.h, - src/gui/register.cpp, src/gui/register.h: Added a new item, improved - smooth login sequence, added a registration window (a lot of - duplicated code to be removed). - -2005-12-29 Eugenio Favalli - - * The Mana World.dev, data/maps/new_10-1.tmx.gz, - src/gui/char_select.cpp, src/gui/char_select.h, src/gui/char_server.cpp, - src/gui/char_server.h, src/gui/connection.cpp, src/gui/connection.h, - src/gui/login.cpp, src/gui/login.h, src/net/network.h: Restored Dev-Cpp - default execution options, updated walkmap in snow map, smoothed login - sequence. - -2005-12-29 Jan-Fabian Humann - - * src/gui/gui.cpp: Added rather ugly workaround to prevent a on-start - crash by Doener. Fixed GCC 3.3.6 and 4.x paranthesis problem, patch - by r0nny. Fixed popupMenu not showing on items. - -2005-12-29 Björn Steinbrink - - * src/game.cpp, src/gui/popupmenu.cpp, src/net/protocol.cpp: Remove - duplicated code for picking up items as patched by pclouds. - * src/game.cpp, src/gui/gui.cpp, src/gui/gui.h, - src/gui/inventorywindow.cpp, src/gui/popupmenu.h: Added popup support - to the Gui and moved the according code there to get rid of some nasty - hack that made them disappear. - * src/game.cpp, src/gui/gui.cpp, src/gui/gui.h, - src/gui/inventorywindow.cpp, src/gui/popupmenu.h, - src/net/protocol.cpp, src/net/protocol.h: Moved all mouse input code - into the Gui class. - -2005-12-26 Duane Bailey - - * src/main.h: Fixed define problems with The_Mana_World_private.h. - -2005-12-25 Bjørn Lindeijer - - * src/being.cpp: Small fix to prevent other stuff than the damage - numbers from fading out. - -2005-12-24 Bjørn Lindeijer - - * src/map.cpp: Worked around fringe layer drawing bug at the bottom. - * src/main.cpp: When compiling with OpenGL support, it'll default to - using OpenGL on only Windows and Mac. These systems are known to have - stable acceleration most of the time. - * NEWS, configure.ac, The Mana World.dev: Updated in preparation of - release 0.0.18.1. - -2005-12-20 Bjørn Lindeijer - - * configure.ac: Changed version to 0.0.18. - -2005-12-18 Eugenio Favalli - - * data/maps/new_10-1.tmx.gz, src/main.cpp: Removed unused code and - added changes to snowy map by Bertram. - -2005-12-15 Eugenio Favalli - - * src/game.cpp: Fixed setup window behaviour. - -2005-12-13 Eugenio Favalli - - * data/items.xml: Changed item properties according to eAthena scripting - capabilities. - * src/being.cpp: Enabled monster emotions. - -2005-12-12 Eugenio Favalli - - * The Mana World.dev, data/graphics/tiles/Makefile.am, data/items.xml, - data/maps/Makefile.am, data/graphics/tiles/Woodland.png, - data/graphics/tiles/snowset.png, data/maps/new_9-1.tmx.gz, - data/maps/new_10-1.tmx.gz: Cleaned Dev-Cpp project file, added new - items definitions and new maps and tilesets. - -2005-12-08 Eugenio Favalli - - * data/graphics/sprites/monster11.png, - data/graphics/sprites/monster12.png, data/graphics/sprites/monster13.png, - data/graphics/sprites/monster14.png, data/graphics/sprites/Makefile.am, - data/graphics/sprites/items.png, data/graphics/sprites/npcs.png,: Added - new monsters, items and npcs. - -2005-12-05 Bjørn Lindeijer - * src/gui/char_server.cpp: Avoid crashing on trying to log the name - of a non-existing character. - * src/main.h, src/main.cpp: Display TMW version on Windows too. - -2005-11-13 Eugenio Favalli - - * The Mana World.dev: Updated Dev-Cpp project file. - -2005-11-13 Bjørn Lindeijer - - * data/maps/new_1-1.tmx.gz, data/maps/new_3-1.tmx.gz, - data/maps/new_7-1.tmx.gz: Made the three desert maps use the fringe - layer for objects. Reveals bug with objects disappearing at the bottom - and still some draw order problems. - -2005-10-24 Ferreira Yohann - - * src/main.cpp: Add version displaying at startup. - * docs/INSTALL/debian.txt: Updated Debian Install Doc. - -2005-10-20 Björn Steinbrink - - * src/gui/item_amount.cpp: Fix scrollbar not being updated when the - amount is changed using the buttons. - * src/gui/buddywindow.cpp, src/gui/buddywindow.h, src/gui/buy.cpp, - src/gui/buy.h, src/gui/char_select.cpp, src/gui/char_select.h, - src/gui/char_server.cpp, src/gui/chat.cpp, src/gui/help.cpp, - src/gui/help.h, src/gui/inventorywindow.cpp, - src/gui/inventorywindow.h, src/gui/item_amount.cpp, src/gui/npc.cpp, - src/gui/npc.h, src/gui/npc_text.cpp, src/gui/npc_text.h, - src/gui/scrollarea.cpp, src/gui/scrollarea.h, src/gui/sell.cpp, - src/gui/sell.h, src/gui/setup.cpp ,src/gui/skill.cpp, - src/gui/trade.cpp, src/gui/updatewindow.cpp: Add garbage collection to - the ScrollArea class. - * src/gui/confirm_dialog.cpp, src/gui/confirm_dialog.h, - src/gui/connection.cpp, src/gui/connection.h, src/gui/debugwindow.cpp, - src/gui/debugwindow.h, src/gui/item_amount.cpp, src/gui/item_amount.h, - src/gui/menuwindow.cpp, src/gui/menuwindow.h, src/gui/ok_dialog.cpp, - src/gui/ok_dialog.h: Various cleanups and refactorisations. - * data/help/index.txt: Fix typo, remove spaces on empty lines. - -2005-10-19 Duane Bailey - - * data/help/index.txt: Added SDL_net reference. - -2005-10-19 Yohann Ferreira - - * debian/rules, debian/tmw.install, debian/copyright, debian/compat, - debian/changelog, debian/control, debian/docs, debian/tmw.menu: - Updated Debian files to get tmw ready for official ITP. - -2005-10-19 Björn Steinbrink - - * src/resources/resourcemanager.cpp: Fix empty lines not being read - from text files. - * src/gui/browserbox.cpp, src/gui/browserbox.h: Code cleanup. - * src/gui/gccontainer.cpp: Remove debug output. - -2005-10-18 Björn Steinbrink - - * src/Makefile.am, src/gui/buddywindow.cpp, src/gui/buddywindow.h, - src/gui/buy.cpp, src/gui/buy.h, src/gui/buysell.cpp, - src/gui/buysell.h, src/gui/char_select.cpp, src/gui/char_select.h, - src/gui/char_server.cpp, src/gui/char_server.h, - src/gui/chargedialog.cpp, src/gui/chargedialog.h, src/gui/chat.cpp, - src/gui/confirm_dialog.cpp, src/gui/confirm_dialog.h, - src/gui/connection.cpp, src/gui/connection.h, src/gui/debugwindow.cpp, - src/gui/debugwindow.h, src/gui/error.h, src/gui/hbox.cpp, - src/gui/hbox.h, src/gui/help.cpp, src/gui/inttextbox.cpp, - src/gui/inttextbox.h, src/gui/inventorywindow.cpp, - src/gui/item_amount.cpp, src/gui/item_amount.h, src/gui/login.cpp, - src/gui/login.h, src/gui/menuwindow.cpp, src/gui/menuwindow.h, - src/gui/ministatus.cpp, src/gui/ministatus.h, src/gui/newskill.cpp, - src/gui/newskill.h, src/gui/npc.cpp, src/gui/npc_text.cpp, - src/gui/ok_dialog.cpp, src/gui/popupmenu.cpp, src/gui/popupmenu.h, - src/gui/requesttrade.cpp, src/gui/requesttrade.h, src/gui/sell.cpp, - src/gui/setup.cpp, src/gui/skill.cpp, src/gui/status.cpp, - src/gui/status.h, src/gui/tabbedcontainer.cpp, src/gui/trade.cpp, - src/gui/updatewindow.cpp, src/gui/vbox.cpp, src/gui/vbox.h, - src/gui/window.cpp, src/gui/window.h, src/gui/windowcontainer.cpp: - Added automatic widget cleanup to the window class. - * src/gui/connection.cpp, src/gui/connection.h, src/gui/error.cpp, - src/gui/status.cpp, src/gui/window.h: Header, whitespace and - indentation cleanups. - -2005-10-16 Duane Bailey - - * src/main.cpp: OpenGL is now default for mac, win, and those who - define USE_OPENGL - * src/gui/setup.cpp: made it so those who use and go to fullscreen - requires a restart (texture/context baddies) - -2005-10-16 Björn Steinbrink - - * src/being.cpp, src/game.cpp, src/inventory.cpp, src/gui/buy.cpp, - src/gui/buysell.cpp, src/gui/char_select.cpp, src/gui/char_server.cpp, - src/gui/chat.cpp, src/gui/connection.cpp, src/gui/login.cpp, - src/gui/npc.cpp, src/gui/npc_text.cpp, src/gui/popupmenu.cpp, - src/gui/requesttrade.cpp, src/gui/sell.cpp, src/gui/skill.cpp, - src/gui/status.cpp, src/gui/trade.cpp, src/net/messagein.cpp, - src/net/messagein.h, src/net/messageout.cpp, src/net/messageout.h, - src/net/protocol.cpp: Rename {read,write}{Byte,Short,Long} to - {read,write}Int{8,16,32}. - * src/being.cpp, src/engine.cpp, src/engine.h, src/game.cpp, - src/main.cpp, src/gui/equipmentwindow.cpp, src/gui/itemcontainer.cpp, - src/resources/resourcemanager.cpp, src/resources/resourcemanager.h: - Use the ResourceManager to get spritesets. - * src/being.cpp: Reduce code duplication in the findNode functions and - use a functor to do the search. - * src/map.cpp: Some code improvements. - * src/Makefile.am: Added two missing files. - -2005-10-16 Eugenio Favalli - - * The Mana World.dev, src/game.cpp, src/gui/char_select.cpp, - src/gui/char_server.cpp, src/gui/char_server.h, src/gui/connection.cpp, - src/gui/connection.h, src/gui/login.cpp, src/gui/login.h, src/main.cpp, - src/main.h, src/net/network.cpp, src/net/network.h, - src/net/protocol.cpp, src/net/protocol.h: The connection should be - non-blocking now and fixed the problem with sound not being played at - startup. - -2005-10-15 Björn Steinbrink - - * src/engine.cpp: Moved some variables into the conditional block - where they are used. - * src/being.cpp: A few changes that make the code look nicer. - * src/openglgraphics.cpp, src/resources/image.cpp, - src/resources/image.h: Some small cleanups. - * src/engine.cpp: Removed some legacy debug code. - -2005-10-13 Bjørn Lindeijer - - * src/game.cpp: Prevent Alt+p/s/f from appearing in chatbox. - * src/Makefile.am: Some updates for added/removed headers. - * src/being.cpp: Changed char to signed char for GNU/Linux PPC. - -2005-10-13 Björn Steinbrink - - * src/engine.cpp, src/gui/browserbox.cpp, src/gui/gui.cpp, - src/gui/gui.h: Use gcn::Font instead of gcn::ImageFont where the - former is sufficient. - -2005-10-10 Bjørn Lindeijer - - * src/being.cpp, src/being.h, src/game.cpp: Always compile with debug - window and hide it on startup. Also added fading out effect on damage - font (only works in OpenGL). - * src/Makefile.am: Don't include debugwindow.h/cpp twice. - * data/graphics/gui/browserfont.png, data/graphics/gui/fixedfont.png, - data/graphics/gui/rpgfont_wider.png, src/gui/browserbox.cpp, - src/gui/gui.cpp: Pajarico added more international characters to the - fixed font and rpg font. - * src/game.cpp, README, data/helps/commands.txt: Introduced new window - shortcuts. - * src/gui/status.cpp: Corrected position of job XP bar. - * src/data/graphics/tiles/Makefile.am: Forgot to add new tilesets - here. - * src/map.cpp: Another small fix to sprite rendering. - -2005-10-09 Yohann Ferreira - - * src/gui/browserbox.cpp, src/gui/ministatus.cpp, - src/gui/debugwindow.h, src/gui/debugwindow.cpp, src/game.cpp, - src/engine.cpp, src/Makefile.am: Corrected the white browser font - bug and the black hp/mp bug which were linked. Added a debug window - -2005-10-09 Bjørn Lindeijer - - * src/being.cpp, src/being.h, src/engine.cpp, src/engine.h, - src/floor_item.cpp, src/floor_item.h, src/map.cpp, src/map.h, - src/sprite.h: Made Sprite into an interface implemented by both - FloorItem and Being, which hook themselves into the map on - construction. The improved fringe layer is working as expected now. - * src/equipment.cpp, src/equipment.h, src/game.cpp, src/game.h, - src/graphics.cpp, src/guichanfwd.h, src/inventory.h, - src/openglgraphics.cpp, src/sound.cpp, src/gui/chargedialog.cpp, - src/gui/chargedialog.h, src/gui/chat.cpp, src/gui/chat.h, - src/gui/equipmentwindow.cpp, src/gui/equipmentwindow.h, - src/gui/gui.cpp, src/gui/help.cpp, src/gui/inventorywindow.cpp, - src/gui/item_amount.cpp, src/gui/itemcontainer.cpp, - src/gui/itemcontainer.h, src/gui/linkhandler.h, src/gui/login.cpp, - src/gui/menuwindow.cpp, src/gui/newskill.cpp, src/gui/npc_text.cpp, - src/gui/popupmenu.cpp, src/gui/popupmenu.h, src/gui/progressbar.cpp, - src/gui/progressbar.h, src/gui/scrollarea.cpp, src/gui/scrollarea.h, - src/gui/skill.cpp, src/gui/status.cpp, src/gui/trade.h, - src/gui/window.cpp, src/gui/window.h, src/net/messagein.cpp, - src/net/packet.cpp, src/net/packet.h, src/resources/image.cpp, - src/resources/image.h, src/resources/iteminfo.cpp, - src/resources/iteminfo.h, src/resources/music.cpp, - src/resources/music.h, src/resources/soundeffect.cpp, - src/resources/soundeffect.h: Made sure TMW compiles without warnings - even when using "-Wconversion -Wshadow -Wcast-qual -Wwrite-strings - -ansi -pedantic", lots of cleanups. - * src/data/maps/new_3-1.tmx.gz, src/graphics/tiles/desert_x2.png, - src/graphics/tiled/desert_x3.png: Added two new small tilesets that - contain the desert tiles that are twice and three times the height of - a normal tile. One well in new_3-1 has been converted to use the new - double tiles for testing purposes. - * src/being.cpp, src/game.cpp, src/engine.cpp: Fixed map switch - crashing the client, display of [TARGET], Alt keys for toggling - windows and names to overlap other players. - -2005-10-06 Bjørn Lindeijer - - * src/being.cpp: Modified finding NPC as by timonator's suggestion in - order to allow NPCs to be clicked on their heads too. - * src/engine.cpp, src/engine.h, src/floor_item.cpp, src/floor_item.h, - src/game.cpp, src/map.cpp, src/sprite.h: Added a Sprite class that - represents something on the map. The map will make sure to draw the - sprites top to bottom, at the same time as the fringe layer tiles. - This is currently still only used by the floor items. - * src/item.cpp, src/item.h: Changed formatting and added - documentation. - * src/properies.h: Separated properties class from Map class, in order - to simplify Map class and to allow properties to be used by other - classes. - -2005-10-06 Björn Steinbrink - - * src/being.cpp, src/being.h, src/game.cpp: Use integer types from SDL - and along the way fixed some long vs. int issues. - * src/inventory.cpp: Return NULL when no valid item index is given to - getItem() to bail out early. - -2005-10-05 Bjørn Lindeijer - - * src/engine.cpp, src/main.cpp, src/gui/char_select.cpp, - src/gui/skill.cpp, src/net/messagein.cpp: Fixed some resource cleanup - and memory leaks. - * src/resources/resource.h, src/resources/resourcemanager.cpp: - Changed the way dangling references to resources are reported to be - more informative. - -2005-10-04 Yohann Ferreira - - * src/game.cpp, src/gui/menuwindow.cpp, src/gui/inventorywindow.cpp, - src/gui/equipmentwindow.cpp: Move to top the requested window with - shortcuts or with menu button, also corrected the default position - of equipment and inventory windows. - * src/gui/chat.cpp: Fixed the Chat Window scrolling bug. - * src/gui/status.cpp, src/gui/ministatus.cpp: Changed the font used - in mini-status. Dynamised previously statically placed widgets in - status win to avoid some label over-drawings. - * src/gui/setup.cpp: Enable the OpenGL Checkbox only if tmw has been - compiled with its support. - -2005-10-02 Bjørn Lindeijer - - * configure.ac, src/Makefile.am: Added check for pthread library and - removed manual -lpthread and -lguichan linker flags. - * src/map.cpp: A small start on supporting other tile height than the - default (map) tile height. - * src/gui/window.cpp, src/gui/window.h, src/resources/buddylist.cpp, - src/resources/buddylist.h: Some cleanups (void argument list was - something you had to do in C times, not necessary in C++). - -2005-09-30 Yohann Ferreira - - * src/gui/inventorywindow.cpp, src/gui/inventorywindow.h, - src/gui/window.h src/gui/window.cpp src/gui/setup.cpp: Made the - inventory Win behave normally when resized by default size functions. - -2005-09-29 Yohann Ferreira - - * src/game.cpp, src/gui/window.h, src/gui/window.cpp, src/gui/setup.h, - src/gui/setup.cpp, src/gui/chat.cpp, src/gui/inventorywindow.h, - src/gui/inventorywindow.cpp, src/gui/skill.cpp, - src/gui/equipmentwindow.cpp, src/gui/menuwindow.cpp, - src/gui/ministatus.cpp, src/gui/minimap.cpp, src/gui/status.cpp: - Improved a lot windows reset to default size and pos. Also corrected - a few the default win position. And moved the setposition from game to - each win, to clarify the code. - -2005-09-29 Bjørn Lindeijer - - * src/map.cpp, src/map.h, src/tileset.h, src/resources/mapreader.cpp, - src/resources/mapreader.h: Moved tileset management into the map class - and made sure the tilesets are cleaned up properly on switching maps. - -2005-09-28 Yohann Ferreira - - * src/gui/updaterwindow.cpp: Fixed the scroll bug in the update window. - * src/gui/ministatus.h, src/gui/ministatus.cpp: Added HP, MP Display - in mini-status window. - * src/gui/window.h, src/gui/window.cpp, src/gui/skill.cpp, - src/gui/status.cpp, src/gui/equipmentwindow.cpp, src/gui/help.cpp, - src/gui/inventorywindow.cpp, src/gui/minimap.cpp, src/gui/chat.cpp: - Added window internal name to later get X, Y, height and width be - saved. - * src/gui/window.h, src/gui/window.cpp, src/game.cpp: Load and save X, - Y, Width and Height of windows when useful. - * src/gui/setup.cpp, src/gui/setup.h; src/gui/minimap.h: Added a 'Reset - Windows to Default' Button in the Setup Window. - -2005-09-28 Björn Steinbrink - - * src/gui/browserbox.cpp: Fix deletion of the gui font because of a - missing check. - * src/Makefile.am: Added -Werror to the CXXFLAGS to catch warnings - easier. - * src/gui/error.h: Removed unnecessary ambigous inheritance. - -2005-09-26 Yohann Ferreira - - * src/gui/char_select.cpp, debian/control, debian/rules, - debian/tmw.install, debian/changelog: Updated Debian files and fixed a - typo let by Elven. - -2005-09-26 Eugenio Favalli - - * The Mana World.dev, src/Makefile.am, src/game.cpp, - src/gui/char_select.cpp, src/gui/char_server.cpp, src/gui/error.cpp, - src/gui/error.h, src/gui/gui.cpp, src/gui/login.cpp, - src/gui/updatewindow.cpp, src/main.cpp, src/main.h, - src/net/network.cpp: Added a nicer handling of when you get - disconnected from the server. - * src/gui/char_select.cpp, src/gui/skill.cpp, src/main.cpp, src/main.h, - src/net/network.cpp: Now error message is displayed properly when the - map server is offline. - -2005-09-25 Bjørn Lindeijer - - * src/openglgraphics.cpp: Fixed taking OpenGL screenshots and in - addition made it flip the image using just a line buffer instead of a - buffer for the complete image. Still needs testing on MacOS X. - -2005-09-24 Bjørn Lindeijer - - * src/being.cpp, src/engine.cpp, src/game.cpp, src/main.cpp, - src/map.cpp, src/sound.cpp, src/gui/char_select.cpp, - src/gui/char_select.h, src/gui/char_server.cpp, src/gui/char_server.h, - src/gui/chargedialog.cpp, src/gui/chargedialog.h, src/gui/chat.cpp, - src/gui/equipmentwindow.cpp, src/gui/login.h, src/gui/setup.cpp, - src/gui/setup.h, src/gui/status.cpp, src/gui/updatewindow.cpp, - src/gui/updatewindow.h, src/resources/iteminfo.cpp, - src/resources/iteminfo.h, src/resources/itemmanager.cpp, - src/resources/itemmanager.h: Merged most of the changes in - biggeruniverse's second memory cleanup patch. - -2005-09-23 Duane Bailey - - * src/openglgraphics.cpp: Totally redid the OpenGL screenshot method. - Needs to be tested on lil endian systems. Also made it smoother on - OpenGL MacOSX. - -2005-09-23 Eugenio Favalli - - * src/resources/imagewriter.cpp: Reverted the last change that broke - the screenshots facility. - -2005-19-22 Duane Bailey - - * src/net/win2mac.h, src/net/win2mac.cpp: Removed - * src/net/network.h, src/net/messagein.h, src/net/messageout.h: - Removed references to win2mac.h - * src/net/messagein.cpp, src/net/messageout.cpp, src/net/network.cpp: - Changed byte swapping support to SDL_endian - -2005-09-21 Andrej Sinicyn - - * src/gui/chat.cpp: Show time of the messages in the chat window. - * The Mana World.dev: Removed reference to src/gui/stats.* since they - are in the attic now. - -2005-09-20 Bjørn Lindeijer - - * src/game.cpp, src/gui/ok_dialog.cpp, src/gui/ok_dialog.h, - src/gui/window.cpp: Enter is used to dismiss dialogs currently, - removed the hacks for use in combination with non-modal dialogs that - made the game crash. - * src/openglgraphics.cpp: Changed glColor4f to glColor4ub. - -2005-09-19 Bjørn Lindeijer - - * configure.ac: Replaced custom function FIND_PATH with AC_PATH_PROG, - used for finding sdl-config. - * src/Makefile.am: Removed -lphysfs which should be added - automatically already. - * src/engine.cpp, src/game.h, src/game.cpp, src/openglgraphics.h, - src/gui/popupmenu.cpp, src/net/messagein.cpp, src/net/messageout.cpp, - src/net/win2mac.h, src/net/win2mac.cpp: Some cleanups. - * src/game.cpp: Actually show the overweight message, and only show it - once for each time weight goes above half the max weight (apparently - this code wasn't even tested once). - * src/graphics.cpp: Surfaces passed to SDL_BlitSurface shouldn't be - locked according to the manual. - * src/main.cpp: Minimal fps limit is now 10 fps. - * src/gui/updatewindow.cpp: Reverted change by Bertram that hardcoded - the updatehost value. - -2005-09-19 Eugenio Favalli - - * src/game.cpp, src/gui/trade.cpp, src/gui/updatewindow.cpp, - src/inventory.cpp: Removed useless flush() calls. - * src/being.cpp, src/game.cpp, src/gui/buy.cpp, src/gui/buysell.cpp, - src/gui/char_select.cpp, src/gui/char_server.cpp, src/gui/chat.cpp, - src/gui/login.cpp, src/gui/npc.cpp, src/gui, npc_text.cpp, - src/gui/popipmenu.cpp, src/gui/requesttrade.cpp, src/gui/sell.cpp, - src/gui/skill.cpp, src/gui/status.cpp, src/gui/trade.cpp, - src/inventory.cpp, src/net/messageout.cpp, src/net/network.cpp, - src/net/network.h, src/net/protocol.cpp: Got rid of writeSet() calls. - * data/graphics/sprites/monster2.png: Fixed some non very bright pixels. - -2005-09-18 Eugenio Favalli - - * The Mana World.dev, src/gui/npc.cpp: Updated dev-cpp project file to - last changes, and fixed the bug with npc lists I introduced earlier. - * data/items.xml: Updated the defense value of fancy hat as pointed out - by xand. - * src/game.cpp, src/gui/gui.cpp, src/gui/updatewindow.cpp, - src/main.cpp, src/resources/mapreader.cpp: Applied biggeruniverse's - patch to fix memory leaks. - * src/game.cpp, src/main.cpp: Increased joypad tolerance which is safer - and simplifyed joypad state reset code. - -2005-09-18 Duane Bailey - - * game.cpp: Added weight notice; now notifies person when they - are carrying more then half their weight - -2005-09-18 Yohann Ferreira - - * src/game.cpp, src/graphics.cpp, src/graphics.h, - src/resources/imagewriter.cpp, src/resources/imagewriter.h: - Made the saveScreenShot makes its screenshots under user home dir in - *nices, made it more C++ way to avoid a leak, and made it check - for existence of a file with same name before writing; In that - case the screenshot's number is incremented until it finds - an adequate name. - * src/gui/updatewindow.cpp: Corrected a bug in the determination - of the update host I had. - * src/gui/updatewindow.cpp, src/playerinfo.h, debian/control, - debian/changelog: Corrected a range value bug for derived stats. - Fixed the percentage of the update win, updated debian information. - * src/gui/status.cpp: As m[a]tt noticed, made the status win a - little more wide, and resizable. - -2005-09-18 Björn Steinbrink - - * src/game.cpp, src/graphics.cpp, src/graphics.h: Move the writing - logic out of the Graphics class once again... Some cleanups in the - screenshot filename selection code. - * src/resources/imagewriter.cpp: Small cleanups. - * src/Makefile.am, src/game.cpp, src/graphics.cpp, src/graphics.h, - src/openglgraphics.cpp, src/openglgraphics.h: Changed saveScreenshot - function in Graphics to getScreenshot. We now use the ImageWriter to - save that screenshot. - * src/resources/imagewriter.cpp, src/resources/imagewriter.h: Added - ImageWriter class that provides a function to save a SDL surface as - png. - -2005-09-17 Duane Bailey - - * src/net/messagin.cpp, src/net/messageout.cpp, src/net/network.cpp: - removed replaced MACOSX defines with big endian defines - * src/graphics.cpp, src/graphics.h: added screenshot method - * src/game.cpp: added code, so that when one presses 'alt-p' (for - picture), it takes a screenshot and saves it to a png - * src/Makefile.am, config.ac: added png library stuff - -2005-09-17 Matthias Hartmann - - * src/engine.cpp: [TARGET] text over player - * src/game.cpp, src/game.h: PVP - * src/gui/popupmenu.cpp: Added "attack" option to the popupmenu - * src/net/protocol.cpp: findPlayer - -2005-09-17 Bjørn Lindeijer - - * src/engine.cpp, src/game.cpp: Indent properly. - -2005-09-17 Björn Steinbrink - - * configure.ac: Fix typo. - * src/Makefile.am: Remove useless (duplicate) -lpng. - * src/graphics.cpp: Add missing cstdarg header. - * src/net/messagein.cpp: Fix some funny looking preprocessor - statement. - * src/net/messageout.cpp: Readd SDLnet header, for changed - preprocessor stuff. - * src/game.h: Remove inclusion of being.h, there was a forward - declaration of class Being anyways... - * src/openglgraphics.cpp: Use gl{Push,Pop}Matrix instead of - calculating offsets, cause the values are stored as float and aren't - accurate enough. - -2005-09-17 Eugenio Favalli - - * The Mana World.dev, src/gui/skill.cpp: Updated to last changes, and - wrong names fixes. - * src/being.cpp, src/game.cpp, src/gui/buy.cpp, src/gui/buysell.cpp, - src/gui/char_select.cpp, src/gui/char_server, src/gui/chat.cpp, - src/gui/npc.cpp, src/gui/npc_text.cpp, src/gui/popupmenu.cpp, - src/gui/requesttrade.cpp, src/gui/sell.cpp, src/gui/skill.cpp, - src/gui/status.cpp, src/gui/trade.cpp, src/inventory.cpp, - src/net/messageout.cpp, src/net/network.cpp, src/net/network.h, - src/net/protocol.cpp, src/net/protocol.h: Completed transition to use - MessageOut. - -2005-09-17 Yohann Ferreira - - * src/game.cpp, src/gui/ministatus.cpp, src/gui/ministatus.h, - src/gui/menuwindow.h, src/gui/menuwindow.cpp, src/gui/status.cpp, - src/gui/status.h: Improving General Layout. - * src/games.cpp, src/playerinfo.h, src/gui/char_server.cpp, - src/gui/char_select.cpp, src/gui/ministatus.cpp, src/gui/skill.cpp, - src/gui/status.cpp, src/gui/status.h: Now the derived stats values - are got from the server, and then, are correct ones. - * src/gui/minimap.cpp: Only shows the Minimap Window if there's - actually a minimap to the current map. - * src/gui/status.cpp, src/game.cpp: The derived stats are now updated - correctly upon equipping/unequipping. - -2005-09-16 Bjørn Lindeijer - - * src/resources/image.cpp: Report which error occured when loading of - an image fails. - -2005-09-14 Björn Steinbrink - - * src/game.cpp: Fix missing parentheses in a negated check. - * src/engine.cpp, src/engine.h, src/game.cpp: Moved Map management - code completely into engine.cpp. - * src/net/messagein.cpp, src/net/messagein.h, src/net/messageout.cpp, - src/net/messageout.h: Added stream operators for char, short and long - reading and writing. - * src/game.cpp, src/log.cpp, src/main.cpp, src/gui/char_select.cpp, - src/gui/char_server.cpp, src/gui/login.cpp, src/net/messageout.cpp, - src/net/messageout.h, src/net/network.cpp, src/net/network.h, - src/net/packet.cpp, src/net/protocol.cpp: Header cleanups. - * src/gui/popupmenu.cpp, src/gui/sell.cpp: Use cassert instead of - assert.h. - * src/net/network.cpp: Add missing cassert header, remove some unused - headers. - * src/net/messagein.cpp: Add missing cassert header. - * src/being.cpp, src/being.h, src/game.cpp: Made Being::setDamage - accept a short instead of a string. - * src/game.cpp, src/game.h, src/gui/char_select.cpp: Converted - map_path from char array to std::string. - -2005-09-13 Eugenio Favalli - - * The Mana World.dev: Updated to last changes. - * The Mana World.dev: Added latest changes to the proper branch. - * src/gui/login.cpp, src/net/messageout.cpp, src/net/messageout.h, - src/net/network.cpp, src/net/network.h: Started to use MessageOut to - send login data. - -2005-09-13 Björn Steinbrink - - * ChangeLog, The Mana World.dev, configure.ac, src/Makefile.am, - src/being.cpp, src/being.h, src/engine.cpp, src/floor_item.cpp, - src/floor_item.h, src/game.cpp, src/game.h, src/inventory.cpp, - src/log.h, src/main.cpp, src/playerinfo.h, src/serverinfo.h, - src/gui/buy.cpp, src/gui/buysell.cpp, src/gui/char_select.cpp, - src/gui/char_server.cpp, src/gui/chargedialog.cpp, src/gui/chat.cpp, - src/gui/inventorywindow.cpp, src/gui/login.cpp, src/gui/npc.cpp, - src/gui/npc.h, src/gui/npc_text.cpp, src/gui/npc_text.h, - src/gui/popupmenu.cpp, src/gui/requesttrade.cpp, - src/gui/requesttrade.h, src/gui/sell.cpp, src/gui/skill.cpp, - src/gui/stats.cpp, src/gui/status.cpp, src/gui/status.h, - src/gui/trade.cpp, src/net/messagein.cpp, src/net/messagein.h, - src/net/messageout.cpp, src/net/messageout.h, src/net/network.cpp, - src/net/network.h, src/net/packet.cpp, src/net/packet.h, - src/net/protocol.cpp, src/net/protocol.h, src/net/win2linux.h, - src/net/win2mac.cpp, src/net/win2mac.h: Merged with SDL_NET_TEST - branch. - * src/being.cpp, src/being.h, src/game.cpp: Simplify remove_node. - * src/being.cpp, src/being.h, src/game.cpp: Merged createBeing and - add_node into createBeing. - * src/main.cpp, src/main.h, src/gui/char_select.cpp, - src/gui/login.cpp: Removed some globals. - * src/main.cpp, src/main.h, src/gui/char_select.cpp, - src/gui/char_select.h, src/gui/char_server.cpp, src/gui/char_server.h, - src/gui/login.cpp, src/gui/login.h, src/gui/updatewindow.cpp, - src/gui/updatewindow.h: Unified the loops for the various dialogs that - are shown before the actual game starts. - * src/gui/login.cpp: Removed a close_session call i missed. - * src/gui/login.cpp: Close the session only when it was opened. - -2005-09-13 Bjørn Lindeijer - - * src/floor_item.cpp, src/floor_item.h, src/engine.cpp, - popupmenu.cpp: Made members private and provided more convenient - constructor. - * src/net/messageout.cpp: Fixed bug in destructor. - * src/net/network.cpp: Initialize buffers and enforce only a single - session at a time. - * src/game.cpp, src/net/protocol.h: Converted all incoming messages - handled in game.cpp to use the MessageIn class. This is a huge change - so please test if everything is still working correctly. - * src/gui/npc.cpp, src/gui/npc.h, src/gui/npc_text.cpp, - src/gui/npc_text.h: Changed argument from char* to std::string for - convenience. - * src/gui/setup.cpp, src/gui/setup.h: Enabled OpenGL checkbox and - added messagebox informing the user that apply this change requires - restarting the client. - * src/gui/updatewindow.cpp: Start displaying file progress at 0% and - some small fixes. - -2005-09-12 Björn Steinbrink - - * src/Makefile.am, src/gui/browserbox.cpp, src/gui/gui.cpp, - src/resources/resourcemanager.cpp, src/resources/resourcemanager.h, - src/resources/sdlimageloader.cpp, src/resources/sdlimageloader.h: - Added SDLImageLoader to make guichan support physfs. Removed - ResourceManager::getRealPath() because it's no longer needed. - -2005-09-12 Bjørn Lindeijer - - * data/graphics/gui/hits_blue.png, data/graphics/gui/hits_red.png, - data/graphics/gui/hits_yellow.png: Made shadow translucent. - * data/graphics/images/minimap_new_7-1.png: Added this minimap. - * data/help/changes.txt, data/help/commands.txt: Added 0.0.16 changes. - * data/maps/new_7-1.tmx.gz: Fixed well being in the wrong layer. - -2005-09-11 Bjørn Lindeijer - - * src/net/network.cpp: Improved error reporting a bit and got rid of - loop for sending data, which shouldn't be necessary according to - SDL_net documentation. - * src/Makefile.am, src/being.cpp, src/being.h, src/engine.cpp, - src/game.cpp, src/main.cpp, src/playerinfo.h, src/gui/char_server.cpp, - src/gui/chargedialog.cpp, src/gui/chat.cpp, - src/gui/inventorywindow.cpp, src/gui/popupmenu.cpp, src/gui/skill.cpp, - src/gui/stats.cpp, src/gui/status.cpp, src/gui/status.h, - src/net/protocol.cpp: Changed char_info into the array it's used as - for character selection and introduced player_info as the pointer to - the player information. Should help towards support for multiple - characters on the same account. Also changed PLAYER_INFO name field to - a std::string. - * src/net/win2mac.cpp, src/net/win2mac.h: A bit of clean up. - * src/net/packet.h, src/net/packet.cpp, src/net/messagein.h, - src/net/messagein.cpp, src/net/messageout.h, src/net/messageout.cpp: - Added these packet reading/writing helpers, taken from the new server - in development. - * src/gui/char_select.cpp: Made new character message be parsed - using MessageIn. Many other incoming messages should be ready to be - ported similarly, simplifying the parsing of packets because of - automatic incrementation of the read position. - * src/game.cpp, src/game.h, src/gui/popupmenu.cpp, - src/gui/requesttrade.cpp, src/gui/requesttrade.h: Changed - tradePartnerName to std::string. - * src/net/win2linux.h: Removed because it became redundant with - the use of SDL_net. - * src/game.cpp, src/game.h, src/gui/char_select.cpp, - src/net/messagein.cpp, src/net/messagein.h, src/net/network.cpp, - src/net/network.h: Got rid of usage of Packet by MessageIn, - simplifying both its usage and implementation. Now also handling - response to character selection through MessageIn. - * src/main.cpp, src/serverinfo.h, src/gui/char_select.cpp, - src/gui/char_server.cpp, src/gui/login.cpp, src/net/network.cpp, - src/net/network.h, src/net/protocol.cpp, src/net/protocol.h: - Introduced get_next_message function to reduce duplication of that - process. Also now MessageIn is used for all incoming messages handled - during the login sequence. - * src/being.cpp, src/being.h, src/game.cpp, src/game.h, - src/inventory.cpp, src/serverinfo.h, src/gui/login.cpp, - src/gui/trade.cpp, src/net/messagein.cpp, src/net/messagein.h, - src/net/network.cpp, src/net/protocol.cpp, src/net/protocol.h: Added - readCoordinates and readCoordinatePair to MessageIn for reading the - specific ways eAthena sends sends those, and converted part of - game.cpp to use the MessageIn class. Also simplified cases where - flush() was still called in a loop for sending and added asserts to - MessageIn methods. - -2005-09-10 Bjørn Lindeijer - - * src/log.cpp: Committed patch by Nayr for displaying a messagebox - when an error occurs on MacOS. - -2005-09-10 Björn Steinbrink - - * configure.ac: Add check for SDL_net. - -2005-09-09 Eugenio Favalli - - * src/game.cpp: Fixes to dropped items network code - -2005-09-09 Bjørn Lindeijer - - * src/net/win2linux.h: Removed inclusion of malloc.h header as it - doens't seem necessary and was problematic on FreeBSD. - -2005-09-08 Björn Steinbrink - - * src/game.cpp: Clean the floor items when the map changes. - -2005-08-30 Eugenio Favalli - - * README, The Mana World.dev, data/graphics/sprites/items.png, - data/graphics/sprites/npcs.png, data/help/header.txt, - data/help/skills.txt, data/items.xml, data/maps/new_8-1.tmx.gz: - Updated docs for release, fixed Dev-Cpp project file, added more items - and npcs, fixed the new map and added it to the makefile. - -2005-08-31 Björn Steinbrink - - * src/openglgraphics.cpp: Fix push/pop of clip area, we need to - translate using the x/y offset, not the x/y coordinates of the clip - area. This fixes the broken scrollareas. - -2005-08-30 Eugenio Favalli - - * The Mana World.dev: Updated project file. - * data/graphics/sprites/npcs.png, src/gui/sell.cpp: Added empty sprite - and reorganized spriteset, fixed a typo. - -2005-08-29 Björn Steinbrink - - * src/Makefile.am, src/configlistener.cpp, src/configlistener.h: Made - the destructor inline, as it is an interface, we don't need a .cpp - file, thus it was removed. - * src/resources/image.cpp, src/resources/image.h, - src/resources/music.cpp, src/resources/music.h, - src/resources/resource.cpp, src/resources/resource.h, - src/resources/resourcemanager.cpp, src/resources/soundeffect.cpp, - src/resources/soundeffect.h: Removed the setIdPath() method from the - Resource class and added the idPath as a Constructor parameter, as - that value is not meant to be changed. - -2005-08-29 Eugenio Favalli - - * data/maps/new_8-1.tmx.gz: Some layer and walkability fixes. - -2005-08-28 Björn Steinbrink - - * src/openglgraphics.cpp, src/gui/browserbox.cpp, - src/gui/buddywindow.cpp, src/gui/buddywindow.h, src/gui/buysell.h, - src/gui/char_server.h, src/gui/chargedialog.h, src/gui/chat.cpp, - src/gui/chat.h, src/gui/confirm_dialog.h, src/gui/equipmentwindow.h, - src/gui/focushandler.h, src/gui/gui.cpp, src/gui/gui.h, - src/gui/help.h, src/gui/inttextbox.cpp, src/gui/inventorywindow.cpp, - src/gui/inventorywindow.h, src/gui/item_amount.h, - src/gui/itemcontainer.cpp, src/gui/listbox.cpp, src/gui/newskill.h, - src/gui/npc_text.h, src/gui/ok_dialog.h, src/gui/passwordfield.cpp, - src/gui/requesttrade.h, src/gui/setup.h, src/gui/stats.h, - src/gui/status.h, src/gui/textbox.cpp, src/gui/textfield.cpp, - src/gui/trade.h, src/gui/updatewindow.h: Add #include's that just - weren't necessary because the guichan folks don't provide clean - headers. This is preparatory for the case that they ever do. ;) - * src/gui/gui.cpp, src/gui/gui.h: Create a GuiConfigListener class. - * src/gui/window.h: Small cleanup. - * src/gui/window.cpp, src/gui/window.h: Create a static ConfigListener - for the Window class. (Fixes each Window listening to config changes, - although they only affect a static class member.) - -2005-08-27 Björn Steinbrink - - * src/gui/npc.cpp: Fix a memory leak. - * src/game.cpp, src/gui/npc.cpp, src/gui/npc.h: Fix the bug when - sometimes the last entry in npc list windows is missing. The network - buffer isn't reset to all zeros, thus we can't rely on the received - string to be nul-terminated, instead we have to use the length - parameter we receive from eAthena (and this way we're also safe - against buffer overflows, because we can use strncpy()). - * src/gui/window.cpp: Bail out early if there's no window container. - * src/engine.cpp, src/game.cpp, src/gui/stats.cpp, src/gui/stats.h, - src/gui/status.cpp, src/gui/status.h: Update the stats and status - window contents only at a single location and let them do it - automagically. - * src/gui/updatewindow.cpp, src/gui/updatewindow.h: Small cleanups. - -2005-08-25 Ferreira Yohann - - * src/gui/buy.h, src/gui/buy.cpp, src/gui/sell.h, src/gui/sell.cpp, - src/gui/inventorywindow.h, src/gui/inventorywindow.cpp: Added effect - description to those each windows, and also made some improvements and - bugfixes as I was on it. - * data/maps/new_7-1.tmx.gz: Added eyecandy to the map 7-1. - -2005-08-26 Björn Steinbrink - - * ChangeLog: Fix indentation and line length. - * docs/HACKING.txt: Fix the example (OOPS!). - * src/configuration.cpp: Remove dependency on math.h. - * src/openglgraphics.cpp: Remove useless code. - * src/openglgraphics.cpp: Use glTranslatef instead of glTranslated. - Remove some useless code. - -2005-08-25 Ferreira Yohann - - * src/main.h, src/main.cpp, src/gui/login.cpp, - src/resources/buddylist.cpp, gui/char_select.cpp: Adding min and max - length check for password, more code cleanups in login and removing - possible buffer overflows by replacing some global char[] by - std::strings. - * src/items.h, src/items.cpp, src/resources/itemmanager.h, - src/resources/itemmanager.cpp, src/resources/iteminfo.h, - src/resources/iteminfo.cpp, data/items.xml, data/items.xsd: Added - Effects description to items. - -2005-08-25 Bjørn Lindeijer - - * ChangeLog: Fixed line length using tab size of 8. - * src/configuration.h, src/configuration.cpp: Removed some debug code - and updated documentation a bit. - * src/resources/resourcemanager.cpp: Removed unused (I think) headers - for Windows. - -2005-08-25 Björn Steinbrink - - * src/openglgraphics.cpp: Use the translation capabilities of OpenGL - instead of doing it ourselves all the time. - * src/graphics.cpp: Simplify the image rect drawing code a bit and - remove an obsolete included header. - * src/openglgraphics.cpp, src/openglgraphics.h: Reduce the code - duplication even further. - * src/engine.cpp, src/floor_item.cpp, src/floor_item.h: Move the - extern declaration for the floor item list into engine.cpp as it's - only used there. - * src/log.cpp: Lower indentation level. - * src/openglgraphics.cpp, src/openglgraphics.h: Reduce code - duplication. - * src/configuration.cpp: Fix compilation errors. - * src/graphics.cpp, src/openglgraphics.cpp, src/gui/button.cpp, - src/gui/checkbox.cpp, src/gui/equipmentwindow.cpp, - src/gui/itemcontainer.cpp, src/gui/minimap.cpp, - src/gui/passwordfield.cpp, src/gui/playerbox.cpp, - stc/gui/progressbar.cpp, src/gui/radiobutton.cpp, - src/gui/scrollarea.cpp, src/gui/slider.cpp, src/gui/textfield.cpp, - src/gui/window.cpp: Made our Graphics::drawImage() method respect the - clip area from the guichan part. Removed some obsolete code. - * src/gui/tabbedcontainer.h: Fix include path for guichanfwd.h. - * src/gui/tabbedcontainer.cpp, src/gui/tabbedcontainer.h: Added a new - container type, that allows switching between the contents through a - tab bar at the top of the container. - * ChangeLog: Fixed intendation and line length. - * docs/HACKING.txt: Added a notice about line length in ChangeLog and - an example for the ChangeLog format. - -2005-08-24 Ferreira Yohann - - * src/game.cpp: Simply don't show equipped items in sell dialog as it's - annoying. - * src/gui/login.h, src/gui/login.cpp: Code cleanups and improvements - to the login sequence. - -2005-08-23 Björn Steinbrink - - * src/gui/shop.h: Fixed using a forward declaration for std::string, - where it was a class member. - * src/game.cpp, src/gui/sell.cpp, src/gui/sell.h: Made the sell dialog - accepts Items instead of looking them up in the inventory. - * src/gui/sell.cpp: Some code cleanups, simplifications and removal of - duplicate code. - * src/gui/buy.cpp, src/gui/sell.cpp, src/gui/shop.h: Avoid possible - buffer overflows by using a std::string instead of char[30]. - * src/gui/buy.cpp: Some code cleanups, simplifications and removal of - duplicate code. - -2005-08-22 Ferreira Yohann - - * src/gui/buy.cpp, src/gui/sell.cpp, src/game.cpp: Removed asserts as - they were not suitable for a stable implementation of buy/sell dialogs - and made some improvements on them. Still has to clean up code. - * src/gui/login.h, src/login.cpp: Code cleanups, little improvements of - the login function. - -2005-08-22 Eugenio Favalli - - * src/gui/skill.cpp: Disabled use button in skill dialog since is still - not being used. - -2005-08-20 Björn Steinbrink - - * src/openglgraphics.cpp: Added some missing state changes and checks. - * src/gui/inventorywindow.cpp, src/gui/item_amount.cpp, - src/gui/item_amount.h, src/gui/popupmenu.cpp, src/gui/trade.cpp: Made - the item amount dialog work on a provided item, instead of having it - ask the inventory window itself. - -2005-08-19 Björn Steinbrink - - * src/engine.cpp, src/game.cpp: The engine isn't connected to all the - gui windows, so move creation from its constructor into the game.cpp - where most of them are actually used. - * src/log.cpp, src/log.h, src/main.cpp: Added support for parsing - command line options. Added option to skip the update process. Made - logger being created immediately after startup, because some - destructors use it. - -2005-08-18 Eugenio Favalli - - * The Mana World.dev, src/game.cpp, src/gui/skill.h, src/gui/skill.cpp: - Updated reference to latest libxml, fixed a bug in updating skills, - updated skill names database. - -2005-08-18 Björn Steinbrink - - * src/Makefile.am, src/graphics.cpp, src/graphics.h, src/main.cpp, - src/openglgraphics.cpp src/openglgraphics.h, src/gui/gui.cpp, - src/resources/image.h: Semi-separated OpenGL and SDL graphics classes, - improves OpenGL performance quite a bit, while rewriting a good bunch - of code provided by guichan (but maybe we'll diverge so much that we'd - need that anyways...) - -2005-08-17 Eugenio Favalli - - * src/configuration.cpp, src/resources/itemmanager.cpp, - src/resources/mapreader.cpp: Removed special #ifdefs for libxml2 - linking issues in Win32. - -2005-08-16 Ferreira Yohann - - * src/gui/window.h, src/gui/window.cpp: Bugfixing and simplifying - resize code. - * debian/*: Updates to the debian packaging files. (The actual update - was from a few days ago.) Now we have the tmw, tmw-data and tmw-music - packages. - * src/gui/setup.h, src/gui/setup.cpp: Now the setup (Config) windows - works as it should be. (The actual update was from a few days ago.) - -2005-08-16 Eugenio Favalli - - * The Mana World.dev, src/gui/status.cpp, src/gui/window.cpp, - src/gui/window.h, src/gui/windowcontainer.h, - data/graphics/gui/resize.png: Added a resize grip to resizable window, - fixed some compiling errors. - -2005-08-15 Björn Steinbrink - - * src/engine.cpp, src/gui/gui.cpp, src/gui/gui.h: Removed guiTop global - variable. - * src/graphics.cpp, src/graphics.h, src/main.cpp: Made the OpenGL - related code fully #ifdef'ed. - * src/main.cpp, src/gui/browserbox.cpp, src/gui/gui.cpp, - src/resources/image.cpp, src/resources/image.h: Fully faded out the - useOpenGL global. Image and Graphics keep track of the mode on their - own now (the latter will go away once we have separate classes...) - * src/graphics.cpp, src/graphics.h, src/main.cpp, src/main.h, - src/gui/browserbox.cpp, src/gui/gui.cpp, src/resources/image.cpp: - Started to fade out the useOpenGL global variable. - * src/engine.cpp, src/gui/char_select.cpp, src/gui/char_server.cpp, - src/gui/chat.cpp, src/gui/gui.cpp, src/gui/gui.h, src/gui/login.cpp, - src/gui/popupmenu.cpp, src/gui/setup.cpp, src/gui/updatewindow.cpp, - src/gui/window.cpp: Removed guiGraphics global pointer and removed - dependencies on gui.h in some places. - - -2005-08-14 Björn Steinbrink - - * src/graphics.cpp, src/graphics.h, src/resources/image.cpp, - src/resources/image.h: Moved the image drawing code into the graphics - class. - * src/being.cpp, src/engine.cpp, src/graphics.cpp, src/graphics.h: Made - the wrapper functions in the Graphics class conditional on whether we - compile with OpenGL support. - -2005-08-13 Björn Steinbrink - - * src/Makefile.am, src/being.cpp, src/being.h, src/configlistener.cpp, - src/configlistener.h, src/configuration.cpp, src/configuration.h, - src/engine.cpp, src/engine.h, src/equipment.cpp, src/equipment.h, - src/game.cpp, src/game.h, src/graphics.cpp, src/graphics.h, - src/guichanfwd.h, src/inventory.cpp, src/inventory.h, src/item.h, - src/log.cpp, src/log.h, src/main.cpp, src/main.h, src/map.cpp, - src/map.h, src/playerinfo.h, src/sound.cpp, src/sound.h, - src/graphic/imagerect.h, src/graphic/spriteset.cpp, - src/graphic/spriteset.h, src/gui/box.h, src/gui/browserbox.cpp, - src/gui/browserbox.h, src/gui/buddywindow.h, src/gui/button.cpp, - src/gui/button.h, src/gui/buy.cpp, src/gui/buy.h, src/gui/buysell.h, - src/gui/char_select.cpp, src/gui/char_select.h, - src/gui/char_server.cpp, src/gui/char_server.h, - src/gui/chargedialog.cpp, src/gui/chargedialog.h, src/gui/chat.cpp, - src/gui/chat.h, src/gui/chatinput.cpp, src/gui/checkbox.cpp, - src/gui/checkbox.h, src/gui/confirm_dialog.cpp, - src/gui/confirm_dialog.h, src/gui/equipmentwindow.cpp, - src/gui/equipmentwindow.h, src/gui/focushandler.h, src/gui/gui.cpp, - src/gui/gui.h, src/gui/help.cpp, src/gui/help.h, - src/gui/inttextbox.cpp, src/gui/inttextbox.h, - src/gui/inventorywindow.cpp, src/gui/inventorywindow.h, - src/gui/item_amount.cpp, src/gui/item_amount.h, - src/gui/itemcontainer.cpp, src/gui/itemcontainer.h, - src/gui/listbox.cpp, src/gui/listbox.h, src/gui/login.cpp, - src/gui/login.h, src/gui/minimap.cpp, src/gui/minimap.h, - src/gui/newskill.cpp, src/gui/newskill.h, src/gui/npc.h, - src/gui/npc_text.h, src/gui/ok_dialog.cpp, src/gui/ok_dialog.h, - src/gui/passwordfield.h, src/gui/playerbox.cpp, src/gui/playerbox.h, - src/gui/popupmenu.cpp, src/gui/popupmenu.h, src/gui/progressbar.cpp, - src/gui/progressbar.h, src/gui/radiobutton.cpp, src/gui/radiobutton.h, - src/gui/requesttrade.cpp, src/gui/requesttrade.h, - src/gui/scrollarea.cpp, src/gui/scrollarea.h, src/gui/sell.cpp, - src/gui/sell.h, src/gui/setup.cpp, src/gui/setup.h, src/gui/skill.h, - src/gui/slider.cpp, src/gui/slider.h, src/gui/stats.cpp, - src/gui/stats.h, src/gui/status.cpp, src/gui/status.h, - src/gui/textbox.cpp, src/gui/textbox.h, src/gui/textfield.cpp, - src/gui/textfield.h, src/gui/trade.cpp, src/gui/trade.h, - src/gui/updatewindow.cpp, src/gui/updatewindow.h, src/gui/window.cpp, - src/gui/window.h, src/gui/windowcontainer.h, src/net/protocol.cpp, - src/net/protocol.h, src/resources/buddylist.hm - src/resources/image.cpp, src/resources/image.h, - src/resources/itemmanager.cpp, src/resources/itemmanager.h, - src/resources/mapreader.cpp, src/resources/mapreader.h, - src/resources/music.h, src/resources/resource.cpp, - src/resources/resourcemanager.cpp, src/resources/resourcemanager.h, - src/resources/soundeffect.h: Huge header cleanup, removing nearly all - #include's from headers to reduce dependencies and compile time. - * src/engine.cpp, src/gui/char_select.cpp, src/gui/inventorywindow.cpp, - src/gui/skill.cpp, src/gui/skill.h, src/gui/stats.cpp, - src/gui/status.cpp: Another small header cleanup, should also solve - compilation problems on windows. - * src/gui/sell.cpp: Reset selection in the sell dialog if all items at - the selected slot are sold. - -2005-08-13 Eugenio Favalli - - * src/gui/status.h, src/gui/status.cpp: Reformatted status window - layout to avoid overlapping and lowered saturation of bars' colors. - * src/gui/status.cpp: Removed smooth color changing from xp bar which - was causing problems and doesn't act as the job xp bar. - * The Mana World.dev, src/game.cpp, src/playerinfo.h, - src/net/protocol.cpp, src/resources/itemmanager.cpp, - src/gui/inventorywindow.cpp: Updated dev-cpp project file, removed - unnecessary header, fixed some include paths. - -2005-08-12 Eugenio Favalli - - * src/buy.cpp, src/sell.cpp: Resetting quantity to 0 after selecting - other items in buy/sell dialogs. - -2005-08-11 Andrej Sinicyn - - * src/resources/image.cpp: Little cleanup and simplification. - -2005-08-10 Björn Steinbrink - - * src/engine.cpp, src/graphics.cpp, src/graphics.h, - src/gui/browserbox.cpp, src/gui/gui.cpp, src/gui/listbox.cpp, - src/gui/minimap.cpp, src/gui/progressbar.cpp, src/gui/scrollarea.cpp: - Moved knowledge about whether we use OpenGL into the Graphics class (as - much as possible) - * src/game.cpp: Added helper function for being creation to reduce code - duplication. Some code simplifications. - -2005-08-09 Björn Steinbrink - - * src/engine.cpp: Adjust drawing offset to have the player centered in - higher resolutions as well. - -2005-08-04 Björn Steinbrink - - * src/main.cpp: Use "true" instead of "1" as bool argument. - * src/resources/resourcemanager.cpp, src/resources/resourcemanager.h: - Added a method to determine the real path of a file in the PhysFS - search path. - * src/gui/browserbox.cpp: Make use of then new resource manager method - to determine the real path of a file. - * src/gui/gui.cpp: Dynamically determine the path to graphic files - instead of using the try-catch fallback method. - -2005-08-03 Andrej Sinicyn - - * src/game.cpp, src/game.h, src/gui/requesttrade.cpp, - src/gui/requesttrade.h: Moved my invented variable, since it makes more - sense. - * src/game.cpp, src/game.h, src/gui/requesttrade.cpp: Fix my previous - fix because it broke my own code. - -2005-08-03 Björn Steinbrink - - * src/main.cpp: Use PhysFS to determine user's home directory on unix - system. Removed an now unused header. - * src/game.cpp: Commented a switch case label that was left uncommented - though the rest was commented. - * src/resources/buddylist.cpp, src/main.h: Removed unneeded header from - main.h, added it to buddylist.cpp. - * src/engine.cpp: Converted two global variables to function-local - ones. - -2005-08-02 Andrej Sinicyn - - * src/game.cpp: Fixed "Trade canceled" happening often. - -2005-08-02 Björn Steinbrink - - * src/engine.cpp: Cleanups in the drawing code. - * src/engine.cpp, src/game.cpp: Made autoTarget checks being handled at - a single location. - * src/being.cpp, src/being.h, src/engine.h: Small header cleanups. - * src/graphics.cpp, src/graphics.h, src/main.cpp, src/main.h, - src/gui/setup.cpp: Moved graphics setup code into the graphics class. - -2005-08-02 Marcel W. Wysocki - - * tmw/src/gui/status.cpp: making setup dialog quitting when clicking - on setup button while dialog is opened - -2005-08-01 Björn Steinbrink - - * src/inventory.cpp, src/inventory.h, src/gui/itemcontainer.cpp, - src/gui/itemcontainer.h: Added a logic function to dynamically adjust - the size of the itemcontainer. - * src/game.cpp: Fixed autoTarget not being set to NULL on map change. - -2005-07-31 Andrej Sinicyn - - * src/game.cpp, src/game.h, src/gui/popupmenu.cpp: Show the name of the - trade partner in the trade dialog. - -2005-07-31 Björn Steinbrink - - * src/gui/listbox.cpp: Small cleanup of the drawing code. - * src/engine.cpp: Added a check to stop scrolling when we hit the map - border. - -2005-07-31 Andrej Sinicyn - - * src/game.cpp: Don't allow more than one trade dialog or requesting it - at once; if a trade is canceled on the other side, close the trade - window. - -2005-07-30 Andrej Sinicyn - - * src/main.cpp: Removed unnecessary value assignment to a variable. - -2005-07-30 Björn Steinbrink - - * src/main.cpp, src/resources/resourcemanager.h, - src/resources/resourcemanager.cpp: Fixed buggy check for the existence - of the updates directory. Extended the resource manager with some - physfs functions and moved the actual setup process from the resource - manager constructor into the main initialization. - -2005-07-29 Björn Steinbrink - - * src/game.cpp: Fixed popup window not always being correctly hidden - when the player clicks somewhere else. - -2005-07-28 Björn Steinbrink - - * src/main.cpp, src/gui/update.cpp, src/resources/resourcemanager.cpp, - src/resources/resourcemanager.h: Added support for files downloaded - through the update manager to the resource manager. Changed directory - name for updates from "data" to "updates". - * src/game.cpp, src/gui/inventorywindow.cpp, src/gui/popupmenu.cpp, - src/gui/popupmenu.h: Cleaned up the showPopup() code, moved - "map"-related code into game.cpp, made the popup show up at mouse - coordinates instead of being aligned to tiles. - * src/being.cpp, src/being.h, src/engine.cpp, src/game.cpp, src/game.h, - src/gui/gui.cpp, src/net/protocol.cpp: Added an action enumeration to - the Being class and removed the old #define's. - * src/resources/resourcemanager.cpp: Fixed a location where a wrong - dir-separator was used. - * src/main.cpp: Fixed updates directory not being created on non-unix - systems. Started using PhysFS write support. - -2005-07-27 Bjørn Lindeijer - - * src/engine.cpp, src/game.cpp, src/graphics.cpp, src/graphics.h, - src/main.cpp, src/gui/browserbox.cpp, src/gui/button.cpp, - src/gui/gui.cpp, src/gui/listbox.cpp, src/gui/minimap.cpp, - src/gui/playerbox.cpp, src/gui/progressbar.cpp, - src/gui/scrollarea.cpp, src/gui/textfield.cpp, src/gui/window.cpp, - src/resources/image.cpp, src/resources/image.h, - src/resources/mapreader.h: Merged OpenGL/SDL merge patch by Andrej - Sinicyn, and his followup patch for fixing SDL-only build. - -2005-07-27 Björn Steinbrink - - * src/gui/gui.cpp, src/gui/gui.h: Removed continous mouse movement, - that implementation wasn't suitable for a release. - -2005-07-26 Björn Steinbrink - - * src/being.cpp, src/being.h, src/engine.cpp, src/game.cpp, - src/gui/minimap.cpp, src/gui/popupmenu.cpp, src/net/protocol.cpp: - Introduced a Being::Type enumeration. Added type-aware findNode() - function. - * src/being.cpp: Set font back to gui font after drawing speech. - Draw auto-target marker in engine instead of being. - * src/gui/popupmenu.cpp: Fixed empty popup window being shown when user - right clicks on an empty tile while the popup is visible. - -2005-07-26 Eugenio Favalli - - * The Mana World.dev: Updated release infos. - * data/graphics/sprites/emotions.png: Added Modanung's smilies. - * src/being.cpp, src/engine.cpp: Fixed text and smilies position. - * src/game.cpp: Cleanups. - * src/gui/skill.cpp: Added new skill names. - * src/main.cpp: Moved sound playback to update screen and changed song. - -2005-07-24 Björn Steinbrink - - * src/game.cpp: Made the key-event handler use switches instead of - if-else. - * src/gui/gui.cpp, src/gui/gui.h: Allow continous movement when holding - down the left mouse button. - -2005-07-23 Björn Steinbrink - - * src/being.h, src/being.cpp: Added a member to keep the current map, - restored setDestination. - * src/game.cpp, src/gui/gui.cpp: Change calls to Being::setPath() to - Being::setDestination(). - * src/map.h: Add a forward declaration for struct PATH_NODE. - -2005-07-23 Bjørn Lindeijer - - * NEWS: Moved project news here. - * ChangeLog: Started standard ChangeLog file here. - * docs/HACKING.txt: Added info about member naming and ChangeLog - format. - * src/gui/updatewindow.h, src/gui/updatewindow.cpp: Changed member - names, set a 15 second timeout for connecting to update server and - restore some doxygen comments, improved size adaption and made the - window a shorter. - * data/graphics/images/login_wallpaper.png: New login wallpaper by - Momotaro. -- cgit v1.2.3-60-g2f50 From f2f00d9e33b1df0fa356bac54eef0f17a6281bdb Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 21 Nov 2008 22:40:55 +0100 Subject: Readded an empty ChangeLog file Required for GNU autoconf. --- ChangeLog | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ChangeLog diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 00000000..e69de29b -- cgit v1.2.3-60-g2f50 From 6b6f41466f548f4ab25e7d1fc7701de1b8f2dca9 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 21 Nov 2008 23:01:33 +0100 Subject: Center large minimaps on player Based on a patch by QOAL. --- src/gui/minimap.cpp | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/gui/minimap.cpp b/src/gui/minimap.cpp index ef1e9544..f07cb417 100644 --- a/src/gui/minimap.cpp +++ b/src/gui/minimap.cpp @@ -40,42 +40,47 @@ Minimap::Minimap(): Minimap::~Minimap() { if (mMapImage) - { mMapImage->decRef(); - } } void Minimap::setMapImage(Image *img) { if (mMapImage) - { mMapImage->decRef(); - } mMapImage = img; if (mMapImage) - { mMapImage->setAlpha(0.7); - } } void Minimap::draw(gcn::Graphics *graphics) { Window::draw(graphics); - if (mMapImage != NULL) + const gcn::Rectangle a = getChildrenArea(); + + int mapOriginX = a.x; + int mapOriginY = a.y; + + if (mMapImage) { + if (mMapImage->getWidth() > a.width || + mMapImage->getHeight() > a.height) + { + mapOriginX += (a.width - player_node->mX) / 2; + mapOriginY += (a.height - player_node->mY) / 2; + } static_cast(graphics)-> - drawImage(mMapImage, getPadding(), getTitleBarHeight()); + drawImage(mMapImage, mapOriginX, mapOriginY); } - Beings &beings = beingManager->getAll(); - BeingIterator bi; + const Beings &beings = beingManager->getAll(); + Beings::const_iterator bi; for (bi = beings.begin(); bi != beings.end(); bi++) { - Being *being = (*bi); + const Being *being = (*bi); int dotSize = 2; switch (being->getType()) { @@ -101,11 +106,10 @@ void Minimap::draw(gcn::Graphics *graphics) continue; } - int offset = (dotSize - 1) / 2; - + const int offset = (dotSize - 1) / 2; graphics->fillRectangle(gcn::Rectangle( - being->mX / 2 + getPadding() - offset, - being->mY / 2 + getTitleBarHeight() - offset, + being->mX / 2 + mapOriginX - offset, + being->mY / 2 + mapOriginY - offset, dotSize, dotSize)); } } -- cgit v1.2.3-60-g2f50 From 7bf5b19ad8799814b6ced3cef7a428bd1577dac1 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 21 Nov 2008 23:33:05 +0100 Subject: Updated NEWS file with changes since 0.0.26 --- NEWS | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/NEWS b/NEWS index 15c2b713..e2df4964 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,19 @@ +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 +- 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 +- 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 + 0.0.26 (29 August 2008) - Added support for a newer version of eAthena server - Added support for showing custom being effects -- cgit v1.2.3-60-g2f50 From c79d12b91ef0e49878a8e3f10486b910184acc69 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 22 Nov 2008 11:43:03 +0100 Subject: Added Fate to the authors --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index cd4f8641..29e56fe6 100644 --- a/AUTHORS +++ b/AUTHORS @@ -19,6 +19,7 @@ Douglas Boffey Duane Bailey Eugenio Favalli Eric Scrivner +Fate Fredrik Reveny Guillaume Melquiond (Silene) Jan-Fabian Humann (Mra) -- cgit v1.2.3-60-g2f50 From 991389a535985af072f830b89e5113da82650fe5 Mon Sep 17 00:00:00 2001 From: Nikos Giagtzoglou Date: Sat, 22 Nov 2008 11:43:53 +0100 Subject: Inventory window now displays amount of slots used Patch by Nikos, with some improvements by vargavind. --- NEWS | 1 + src/gui/inventorywindow.cpp | 19 +++++++++++++++---- src/gui/inventorywindow.h | 1 + src/inventory.cpp | 11 ++++++++--- src/inventory.h | 11 ++++++++--- 5 files changed, 33 insertions(+), 10 deletions(-) diff --git a/NEWS b/NEWS index e2df4964..c93575b5 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,7 @@ - Added --data parameter for developers - Added particle effect for critical hits - Added support for dynamic skill names and hair colors +- 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 diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp index d01a2112..6a5a8b37 100644 --- a/src/gui/inventorywindow.cpp +++ b/src/gui/inventorywindow.cpp @@ -24,11 +24,11 @@ #include #include - #include #include "button.h" #include "gui.h" +#include "inventory.h" #include "item_amount.h" #include "itemcontainer.h" #include "scrollarea.h" @@ -64,10 +64,13 @@ InventoryWindow::InventoryWindow(): mItemNameLabel = new gcn::Label("Name:"); mItemDescriptionLabel = new gcn::Label("Description:"); mItemEffectLabel = new gcn::Label("Effect:"); - mWeightLabel = new gcn::Label("Total Weight: - Maximum Weight: "); + mWeightLabel = new gcn::Label("Weight:"); mWeightLabel->setPosition(8, 8); mInvenScroll->setPosition(8, mWeightLabel->getY() + mWeightLabel->getHeight() + 5); + mInvenSlotLabel = new gcn::Label("Slots used:"); + mInvenSlotLabel->setPosition(mWeightLabel->getX() + + mWeightLabel->getWidth() + 100, 8); add(mUseButton); add(mDropButton); @@ -76,6 +79,7 @@ InventoryWindow::InventoryWindow(): add(mItemDescriptionLabel); add(mItemEffectLabel); add(mWeightLabel); + add(mInvenSlotLabel); mUseButton->setSize(60, mUseButton->getHeight()); @@ -92,8 +96,14 @@ void InventoryWindow::logic() // Update weight information mWeightLabel->setCaption( - "Total Weight: " + toString(player_node->mTotalWeight) + " - " - "Maximum Weight: " + toString(player_node->mMaxWeight)); + "Weight: " + toString(player_node->mTotalWeight) + + "/" + toString(player_node->mMaxWeight)); + + // Update number of items in inventory + mInvenSlotLabel->setCaption( + "Slots used: " + + toString(player_node->getInventory()->getNumberOfSlotsUsed()) + + "/" + toString(player_node->getInventory()->getInventorySize())); } void InventoryWindow::action(const gcn::ActionEvent &event) @@ -201,6 +211,7 @@ void InventoryWindow::widgetResized(const gcn::Event &event) mItemDescriptionLabel->getY() - mWeightLabel->getHeight() - 18); mWeightLabel->setWidth(width - 16); + mInvenSlotLabel->setWidth(width - 16); } void InventoryWindow::updateButtons() diff --git a/src/gui/inventorywindow.h b/src/gui/inventorywindow.h index 0b208bbb..b1e3ede3 100644 --- a/src/gui/inventorywindow.h +++ b/src/gui/inventorywindow.h @@ -84,6 +84,7 @@ class InventoryWindow : public Window, gcn::ActionListener, gcn::Label *mItemDescriptionLabel; gcn::Label *mItemEffectLabel; gcn::Label *mWeightLabel; + gcn::Label *mInvenSlotLabel; }; extern InventoryWindow *inventoryWindow; diff --git a/src/inventory.cpp b/src/inventory.cpp index 5633f430..938d23d3 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -132,19 +132,19 @@ bool Inventory::contains(Item *item) const return false; } -int Inventory::getFreeSlot() +int Inventory::getFreeSlot() const { Item **i = std::find_if(mItems + 2, mItems + INVENTORY_SIZE, std::not1(SlotUsed())); return (i == mItems + INVENTORY_SIZE) ? -1 : (i - mItems); } -int Inventory::getNumberOfSlotsUsed() +int Inventory::getNumberOfSlotsUsed() const { return count_if(mItems, mItems + INVENTORY_SIZE, SlotUsed()); } -int Inventory::getLastUsedSlot() +int Inventory::getLastUsedSlot() const { for (int i = INVENTORY_SIZE - 1; i >= 0; i--) { if (SlotUsed()(mItems[i])) { @@ -154,3 +154,8 @@ int Inventory::getLastUsedSlot() return -1; } + +int Inventory::getInventorySize() const +{ + return INVENTORY_SIZE - 2; +} diff --git a/src/inventory.h b/src/inventory.h index aa5c8d1d..2fbbbf4c 100644 --- a/src/inventory.h +++ b/src/inventory.h @@ -80,7 +80,7 @@ class Inventory /** * Returns id of next free slot or -1 if all occupied. */ - int getFreeSlot(); + int getFreeSlot() const; /** * Reset all item slots. @@ -90,12 +90,17 @@ class Inventory /** * Get the number of slots filled with an item */ - int getNumberOfSlotsUsed(); + int getNumberOfSlotsUsed() const; /** * Returns the index of the last occupied slot or 0 if none occupied. */ - int getLastUsedSlot(); + int getLastUsedSlot() const; + + /** + * Returns the number of slots available in the inventory. + */ + int getInventorySize() const; protected: Item **mItems; /**< The holder of items */ -- cgit v1.2.3-60-g2f50 From f7179cdca447c534029bb36a776595bbe3fc999e Mon Sep 17 00:00:00 2001 From: David Athay Date: Sat, 22 Nov 2008 11:50:17 +0000 Subject: Added custom nib for Cmd-Q on OSX --- English.lproj/SDLMain.nib/classes.nib | 8 + English.lproj/SDLMain.nib/info.nib | 20 +++ English.lproj/SDLMain.nib/objects.xib | 77 ++++++++++ Info.plist | 2 +- SDLMain.nib/classes.nib | 8 + SDLMain.nib/info.nib | 20 +++ SDLMain.nib/objects.xib | 80 ++++++++++ src/SDLMain.m | 257 ++++++++++++++++++++++---------- themanaworld.xcodeproj/garfield.mode1v3 | 23 +-- themanaworld.xcodeproj/garfield.pbxuser | 169 +++++++++++++-------- themanaworld.xcodeproj/project.pbxproj | 15 -- 11 files changed, 513 insertions(+), 166 deletions(-) create mode 100644 English.lproj/SDLMain.nib/classes.nib create mode 100644 English.lproj/SDLMain.nib/info.nib create mode 100644 English.lproj/SDLMain.nib/objects.xib create mode 100644 SDLMain.nib/classes.nib create mode 100644 SDLMain.nib/info.nib create mode 100644 SDLMain.nib/objects.xib 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 @@ + + + + + IBVersion + 1 + + 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 @@ + + + + + IBFramework Version + 670 + IBLastKnownRelativeProjectPath + ../themanaworld.xcodeproj + IBOldestOS + 5 + IBOpenObjects + + 29 + + IBSystem Version + 9F33 + targetFramework + IBCarbonFramework + + 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 @@ + + + + + + + Quit + q + TRUE + quit + + + FALSE + TRUE + TRUE + FALSE + Window + + 0 0 480 360 + 0 0 360 480 + + 204 300 564 780 + 0 0 768 1024 + + + themanaworld + _NSAppleMenu + + + About themanaworld + 0 + abou + + + TRUE + TRUE + TRUE + + + + + + + main + _NSMainMenu + + + themanaworld + + + + + + + + + + + + + + + + + + + + File's Owner + + MainWindow + + MenuBar + + + IBCarbonFramework + 231 + diff --git a/Info.plist b/Info.plist index 8699a8ae..36084dd8 100644 --- a/Info.plist +++ b/Info.plist @@ -21,7 +21,7 @@ NSHumanReadableCopyright Copyright 2008 The Mana World Development Team NSMainNibFile - main + SDLMain NSPrincipalClass NSApplication NSPrincipleClass 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 @@ + + + + + IBVersion + 1 + + 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 @@ + + + + + IBFramework Version + 670 + IBLastKnownRelativeProjectPath + themanaworld.xcodeproj + IBOldestOS + 5 + IBOpenObjects + + 29 + + IBSystem Version + 9F33 + targetFramework + IBCarbonFramework + + 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 @@ + + + + + + + themanaworld + _NSAppleMenu + + + About themanaworld + 0 + abou + + + TRUE + TRUE + TRUE + + + Quit + q + TRUE + quit + + + + + FALSE + FALSE + FALSE + FALSE + FALSE + TRUE + FALSE + Window + + 0 0 800 600 + 0 0 600 800 + + 154 408 754 1208 + 64 0 1028 1680 + + + The Mana World + + + + + + main + _NSMainMenu + + + + + + + + + + + + + + + + + + + File's Owner + + MainWindow + + MenuBar + + + IBCarbonFramework + 231 + diff --git a/src/SDLMain.m b/src/SDLMain.m index 19694b5f..3d02719c 100755 --- a/src/SDLMain.m +++ b/src/SDLMain.m @@ -1,33 +1,67 @@ /* SDLMain.m - main entry point for our Cocoa-ized SDL app - Initial Version: Darrell Walisser - Non-NIB-Code & other changes: Max Horn - - Feel free to customize this file to suit your needs -*/ + Initial Version: Darrell Walisser + Non-NIB-Code & other changes: Max Horn + + Feel free to customize this file to suit your needs + */ #import "SDL.h" #import "SDLMain.h" #import /* for MAXPATHLEN */ #import +/* 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 -#else -/* An internal Apple class used to setup Apple menus */ -@interface NSAppleMenuController:NSObject {} -- (void)controlMenu:(NSMenu *)aMenu; -@end #endif @interface SDLApplication : NSApplication @@ -44,32 +78,24 @@ static BOOL gFinderLaunch; } @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 { - char parentdir[MAXPATHLEN]; - char *c; - - strncpy ( parentdir, gArgv[0], sizeof(parentdir) ); - c = (char*) parentdir; - - while (*c != '\0') /* go to end */ - c++; - - while (*c != '/') /* back up to parent */ - c--; - - *c++ = '\0'; /* cut off last part (binary name) */ - if (shouldChdir) { - assert ( chdir (parentdir) == 0 ); /* chdir to the binary app's parent */ - assert ( chdir ("../../../") == 0 ); /* chdir to the .app's parent */ - } + 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 @@ -80,11 +106,11 @@ static BOOL gFinderLaunch; 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])) { @@ -99,39 +125,57 @@ static BOOL gFinderLaunch; #else -void setupAppleMenu(void) +static void setApplicationMenu(void) { /* warning: this code is very odd */ - NSAppleMenuController *appleMenuController; NSMenu *appleMenu; - NSMenuItem *appleMenuItem; - - appleMenuController = [[NSAppleMenuController alloc] init]; + NSMenuItem *menuItem; + NSString *title; + NSString *appName; + + appName = getApplicationName(); appleMenu = [[NSMenu alloc] initWithTitle:@""]; - appleMenuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""]; - - [appleMenuItem setSubmenu:appleMenu]; - - /* yes, we do need to add it and then remove it -- - if you don't add it, it doesn't get displayed - if you don't remove it, you have an extra, titleless item in the menubar - when you remove it, it appears to stick around - very, very odd */ - [[NSApp mainMenu] addItem:appleMenuItem]; - [appleMenuController controlMenu:appleMenu]; - [[NSApp mainMenu] removeItem:appleMenuItem]; + + /* 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]; - [appleMenuItem release]; + [menuItem release]; } /* Create a window menu */ -void setupWindowMenu(void) +static void setupWindowMenu(void) { - NSMenu *windowMenu; - NSMenuItem *windowMenuItem; - NSMenuItem *menuItem; - - + NSMenu *windowMenu; + NSMenuItem *windowMenuItem; + NSMenuItem *menuItem; + windowMenu = [[NSMenu alloc] initWithTitle:@"Window"]; /* "Minimize" item */ @@ -146,24 +190,35 @@ void setupWindowMenu(void) /* 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 */ -void CustomApplicationMain (argc, argv) +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]]; - setupAppleMenu(); + setApplicationMenu(); setupWindowMenu(); /* Create SDLMain and make it the app delegate */ @@ -179,22 +234,73 @@ void CustomApplicationMain (argc, argv) #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:[[NSProcessInfo processInfo] processName]]; + [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); } @@ -211,7 +317,7 @@ void CustomApplicationMain (argc, argv) unichar *buffer; NSRange localRange; NSString *result; - + bufferSize = selfLen + aStringLen - aRange.length; buffer = NSAllocateMemoryPages(bufferSize*sizeof(unichar)); @@ -224,7 +330,7 @@ void CustomApplicationMain (argc, argv) 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; @@ -250,24 +356,23 @@ void CustomApplicationMain (argc, argv) /* Main entry point to executable - should *not* be SDL_main! */ int main (int argc, char **argv) { - /* Copy the arguments into a global variable */ - int i; - /* 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; + gFinderLaunch = YES; } else { + int i; gArgc = argc; - gFinderLaunch = NO; + gArgv = (char **) SDL_malloc(sizeof (char *) * (argc+1)); + for (i = 0; i <= argc; i++) + gArgv[i] = argv[i]; + gFinderLaunch = NO; } - gArgv = (char**) malloc (sizeof(*gArgv) * (gArgc+1)); - assert (gArgv != NULL); - for (i = 0; i < gArgc; i++) - gArgv[i] = argv[i]; - gArgv[i] = NULL; - + #if SDL_USE_NIB_FILE [SDLApplication poseAsClass:[NSApplication class]]; NSApplicationMain (argc, argv); diff --git a/themanaworld.xcodeproj/garfield.mode1v3 b/themanaworld.xcodeproj/garfield.mode1v3 index 1b941b63..0076a8bc 100644 --- a/themanaworld.xcodeproj/garfield.mode1v3 +++ b/themanaworld.xcodeproj/garfield.mode1v3 @@ -267,15 +267,12 @@ 20286C29FDCF999611CA2CEA 5048396909E3304600765E4B 20286C2CFDCF999611CA2CEA - 1C37FBAC04509CD000000102 - 927F62010ED4EA4500D919E6 PBXSmartGroupTreeModuleOutlineStateSelectionKey - 16 - 15 - 14 + 1 + 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey @@ -326,19 +323,27 @@ _historyCapacity 0 bookmark - 927F623A0ED4EBEB00D919E6 + 927F62650ED4F41700D919E6 history - 92B1EBDD0ED4E43D009AF197 92B1EBDE0ED4E43D009AF197 92B1EBF30ED4E5C5009AF197 - 92B1EC470ED4EA36009AF197 + 927F625B0ED4F41700D919E6 + 927F625C0ED4F41700D919E6 + 927F625D0ED4F41700D919E6 prevStack 92B1EBE00ED4E43D009AF197 92B1EBE10ED4E43D009AF197 92B1EBF50ED4E5C5009AF197 + 927F625E0ED4F41700D919E6 + 927F625F0ED4F41700D919E6 + 927F62600ED4F41700D919E6 + 927F62610ED4F41700D919E6 + 927F62620ED4F41700D919E6 + 927F62630ED4F41700D919E6 + 927F62640ED4F41700D919E6 SplitCount @@ -531,8 +536,8 @@ WindowOrderList 92A4CC8A0D1C5F1E00CA28FB - 1C78EAAD065D492600B07095 1CD10A99069EF8BA00B06720 + 1C78EAAD065D492600B07095 /Users/garfield/programming/tmwclient/themanaworld.xcodeproj WindowString diff --git a/themanaworld.xcodeproj/garfield.pbxuser b/themanaworld.xcodeproj/garfield.pbxuser index ada25426..42957a89 100644 --- a/themanaworld.xcodeproj/garfield.pbxuser +++ b/themanaworld.xcodeproj/garfield.pbxuser @@ -134,23 +134,26 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 248834629; - PBXWorkspaceStateSaveDate = 248834629; + PBXPerProjectTemplateStateSaveDate = 249045476; + PBXWorkspaceStateSaveDate = 249045476; }; perUserProjectItems = { - 927F62190ED4EA6A00D919E6 /* PlistBookmark */ = 927F62190ED4EA6A00D919E6 /* PlistBookmark */; - 927F621C0ED4EA6A00D919E6 /* PlistBookmark */ = 927F621C0ED4EA6A00D919E6 /* PlistBookmark */; - 927F623A0ED4EBEB00D919E6 /* PlistBookmark */ = 927F623A0ED4EBEB00D919E6 /* PlistBookmark */; - 92B1EBDD0ED4E43D009AF197 = 92B1EBDD0ED4E43D009AF197 /* PBXTextBookmark */; + 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 */; - 92B1EBE90ED4E547009AF197 = 92B1EBE90ED4E547009AF197 /* PBXBookmark */; 92B1EBF30ED4E5C5009AF197 = 92B1EBF30ED4E5C5009AF197 /* PBXTextBookmark */; 92B1EBF50ED4E5C5009AF197 = 92B1EBF50ED4E5C5009AF197 /* PBXTextBookmark */; - 92B1EC440ED4EA36009AF197 = 92B1EC440ED4EA36009AF197 /* PlistBookmark */; - 92B1EC470ED4EA36009AF197 = 92B1EC470ED4EA36009AF197 /* PlistBookmark */; - 92B1EC480ED4EA36009AF197 = 92B1EC480ED4EA36009AF197 /* PlistBookmark */; }; sourceControlManager = 92BC3EC80BAEE3C8000DAB7F /* Source Control */; userBuildSettings = { @@ -172,9 +175,10 @@ }; 92037A190ED2035A00D3712D /* SDLMain.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {511, 348}}"; + sepNavIntBoundsRect = "{{0, 0}, {802, 506}}"; sepNavSelRange = "{0, 0}"; sepNavVisRange = "{0, 307}"; + sepNavWindowFrame = "{{15, 389}, {861, 634}}"; }; }; 924A42600C0874D00066885E /* Info.plist */ = { @@ -193,7 +197,38 @@ sepNavVisRange = "{1251, 209}"; }; }; - 927F62190ED4EA6A00D919E6 /* PlistBookmark */ = { + 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; @@ -205,24 +240,76 @@ rLen = 0; rLoc = 2147483647; }; - 927F621C0ED4EA6A00D919E6 /* PlistBookmark */ = { + 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; }; - 927F623A0ED4EBEB00D919E6 /* PlistBookmark */ = { + 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 = ( - NSPrincipleClass, + ); + 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; @@ -252,16 +339,6 @@ sepNavWindowFrame = "{{180, 8}, {627, 714}}"; }; }; - 92B1EBDD0ED4E43D009AF197 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 92BC40E50BAEF54B000DAB7F /* SDLMain.m */; - name = "SDLMain.m: 14"; - rLen = 0; - rLoc = 440; - rType = 0; - vrLen = 759; - vrLoc = 0; - }; 92B1EBDE0ED4E43D009AF197 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 92BC3F660BAEE55B000DAB7F /* viewport.cpp */; @@ -292,10 +369,6 @@ vrLen = 780; vrLoc = 7501; }; - 92B1EBE90ED4E547009AF197 /* PBXBookmark */ = { - isa = PBXBookmark; - fRef = 924A42600C0874D00066885E /* Info.plist */; - }; 92B1EBF30ED4E5C5009AF197 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 92BC3EEF0BAEE55A000DAB7F /* graphics.h */; @@ -316,40 +389,6 @@ vrLen = 692; vrLoc = 434; }; - 92B1EC440ED4EA36009AF197 /* PlistBookmark */ = { - isa = PlistBookmark; - fRef = 924A42600C0874D00066885E /* Info.plist */; - fallbackIsa = PBXBookmark; - isK = 0; - kPath = ( - ); - name = /Users/garfield/programming/tmwclient/Info.plist; - rLen = 0; - rLoc = 2147483647; - }; - 92B1EC470ED4EA36009AF197 /* PlistBookmark */ = { - isa = PlistBookmark; - fRef = 924A42600C0874D00066885E /* Info.plist */; - fallbackIsa = PBXBookmark; - isK = 0; - kPath = ( - NSPrincipalClass, - ); - name = /Users/garfield/programming/tmwclient/Info.plist; - rLen = 0; - rLoc = 2147483647; - }; - 92B1EC480ED4EA36009AF197 /* PlistBookmark */ = { - isa = PlistBookmark; - fRef = 924A42600C0874D00066885E /* Info.plist */; - fallbackIsa = PBXBookmark; - isK = 0; - kPath = ( - ); - name = /Users/garfield/programming/tmwclient/Info.plist; - rLen = 0; - rLoc = 2147483647; - }; 92BC3EBC0BAEE3BB000DAB7F /* themanaworld */ = { isa = PBXExecutable; activeArgIndices = ( @@ -862,8 +901,8 @@ 92BC40E50BAEF54B000DAB7F /* SDLMain.m */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {726, 3906}}"; - sepNavSelRange = "{440, 0}"; - sepNavVisRange = "{7053, 643}"; + sepNavSelRange = "{3069, 0}"; + sepNavVisRange = "{2696, 949}"; sepNavWindowFrame = "{{583, 96}, {627, 714}}"; }; }; diff --git a/themanaworld.xcodeproj/project.pbxproj b/themanaworld.xcodeproj/project.pbxproj index 7bd2a8e0..5bd59f57 100644 --- a/themanaworld.xcodeproj/project.pbxproj +++ b/themanaworld.xcodeproj/project.pbxproj @@ -88,7 +88,6 @@ 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 */; }; - 927F62590ED4F1D100D919E6 /* main.nib in Resources */ = {isa = PBXBuildFile; fileRef = 927F62570ED4F1D100D919E6 /* main.nib */; }; 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 */; }; @@ -474,7 +473,6 @@ 926F9D420DB00AFC00AACD26 /* itemshortcutcontainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = itemshortcutcontainer.h; sourceTree = ""; }; 926F9D430DB00AFC00AACD26 /* itemshortcutwindow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = itemshortcutwindow.cpp; sourceTree = ""; }; 926F9D440DB00AFC00AACD26 /* itemshortcutwindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = itemshortcutwindow.h; sourceTree = ""; }; - 927F62580ED4F1D100D919E6 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/main.nib; sourceTree = ""; }; 9294DAA00C17E73200FCEDE9 /* libpng.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libpng.framework; path = /Library/Frameworks/libpng.framework; sourceTree = ""; }; 92A4CC9D0D1C622E00CA28FB /* dye.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dye.cpp; path = src/resources/dye.cpp; sourceTree = ""; }; 92A4CCE00D1DA58D00CA28FB /* dir.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dir.c; sourceTree = ""; }; @@ -905,7 +903,6 @@ 20286C2CFDCF999611CA2CEA /* Resources */ = { isa = PBXGroup; children = ( - 927F62570ED4F1D100D919E6 /* main.nib */, 92A4CCFE0D1DA8E500CA28FB /* LICENSE.rtf */, 924A42590C0871EC0066885E /* The Mana World.icns */, 924A3E590C085ED70066885E /* data */, @@ -1405,7 +1402,6 @@ files = ( 924A425A0C0871EC0066885E /* The Mana World.icns in Resources */, 92A4CCFF0D1DA8E500CA28FB /* LICENSE.rtf in Resources */, - 927F62590ED4F1D100D919E6 /* main.nib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1577,17 +1573,6 @@ }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXVariantGroup section */ - 927F62570ED4F1D100D919E6 /* main.nib */ = { - isa = PBXVariantGroup; - children = ( - 927F62580ED4F1D100D919E6 /* English */, - ); - name = main.nib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - /* Begin XCBuildConfiguration section */ C0E91AC608A95435008D54AB /* Debug */ = { isa = XCBuildConfiguration; -- cgit v1.2.3-60-g2f50 From 124aef95eff5b9fe3692d847d288e6470f33f812 Mon Sep 17 00:00:00 2001 From: Nikos Giagtzoglou Date: Sat, 22 Nov 2008 11:43:53 +0100 Subject: Added ability to add equipment to the shurtcut bar Patch by Nikos, with some improvements. --- NEWS | 1 + src/gui/itemcontainer.cpp | 25 ++++++++----------------- src/gui/itemshortcutcontainer.cpp | 6 ++++-- src/itemshortcut.cpp | 22 +++++++++++++--------- 4 files changed, 26 insertions(+), 28 deletions(-) diff --git a/NEWS b/NEWS index c93575b5..a07a681b 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,7 @@ - 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 shurtcut bar - 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 diff --git a/src/gui/itemcontainer.cpp b/src/gui/itemcontainer.cpp index 68978db2..5342e3fe 100644 --- a/src/gui/itemcontainer.cpp +++ b/src/gui/itemcontainer.cpp @@ -59,8 +59,7 @@ ItemContainer::~ItemContainer() mSelImg->decRef(); } -void -ItemContainer::logic() +void ItemContainer::logic() { gcn::Widget::logic(); @@ -73,8 +72,7 @@ ItemContainer::logic() } } -void -ItemContainer::draw(gcn::Graphics *graphics) +void ItemContainer::draw(gcn::Graphics *graphics) { int columns = getWidth() / gridWidth; @@ -147,20 +145,17 @@ void ItemContainer::recalculateHeight() setHeight(height); } -Item* -ItemContainer::getSelectedItem() const +Item *ItemContainer::getSelectedItem() const { return mSelectedItem; } -void -ItemContainer::selectNone() +void ItemContainer::selectNone() { setSelectedItem(NULL); } -void -ItemContainer::setSelectedItem(Item *item) +void ItemContainer::setSelectedItem(Item *item) { if (mSelectedItem != item) { @@ -169,8 +164,7 @@ ItemContainer::setSelectedItem(Item *item) } } -void -ItemContainer::distributeValueChangedEvent() +void ItemContainer::distributeValueChangedEvent() { gcn::SelectionEvent event(this); std::list::iterator i_end = mListeners.end(); @@ -182,8 +176,7 @@ ItemContainer::distributeValueChangedEvent() } } -void -ItemContainer::mousePressed(gcn::MouseEvent &event) +void ItemContainer::mousePressed(gcn::MouseEvent &event) { int button = event.getButton(); @@ -203,9 +196,7 @@ ItemContainer::mousePressed(gcn::MouseEvent &event) } Item *item = mInventory->getItem(index); setSelectedItem(item); - if (item && !item->isEquipment()) - { + if (item) itemShortcut->setItemSelected(item->getId()); - } } } diff --git a/src/gui/itemshortcutcontainer.cpp b/src/gui/itemshortcutcontainer.cpp index 687f8d16..2ea5d584 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) @@ -98,9 +98,11 @@ ItemShortcutContainer::draw(gcn::Graphics *graphics) // Draw item icon. Image* image = item->getImage(); if (image) { + const std::string label = + item->isEquipped() ? "Eq." : toString(item->getQuantity()); g->drawImage(image, itemX, itemY); g->drawText( - toString(item->getQuantity()), + label, itemX + mBoxWidth / 2, itemY + mBoxHeight - 14, gcn::Graphics::CENTER); diff --git a/src/itemshortcut.cpp b/src/itemshortcut.cpp index 5a92e216..babe3dfb 100644 --- a/src/itemshortcut.cpp +++ b/src/itemshortcut.cpp @@ -62,14 +62,8 @@ void ItemShortcut::save() { for (int i = 0; i < SHORTCUT_ITEMS; i++) { - if (mItems[i]) - { - config.setValue("shortcut" + toString(i), mItems[i]); - } - else - { - config.setValue("shortcut" + toString(i), -1); - } + const int itemId = mItems[i] ? mItems[i] : -1; + config.setValue("shortcut" + toString(i), itemId); } } @@ -79,6 +73,16 @@ void ItemShortcut::useItem(int index) { Item *item = player_node->getInventory()->findItem(mItems[index]); if (item && item->getQuantity()) - player_node->useItem(item); + { + if (item->isEquipment()) { + if (item->isEquipped()) { + player_node->unequipItem(item); + } else { + player_node->equipItem(item); + } + } else { + player_node->useItem(item); + } + } } } -- cgit v1.2.3-60-g2f50 From f0ce72bc759a99cbe6611b54e6f307e39c3634f4 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 22 Nov 2008 14:42:00 +0100 Subject: Spelling fix --- NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS b/NEWS index a07a681b..3fed4904 100644 --- a/NEWS +++ b/NEWS @@ -4,7 +4,7 @@ - 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 shurtcut bar +- Added ability to add equipment to the shortcut bar - 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 -- cgit v1.2.3-60-g2f50 From 1c392d41f9004c3bf0b8455465ec62fe89109a63 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 22 Nov 2008 18:47:48 +0100 Subject: Fixed non-virtual destructor The class had virtual methods, in which case it's good practice to also make the destructor virtual. Otherwise you can end up with destructors of subclasses not being called on deletion. --- src/text.h | 47 ++++++++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/src/text.h b/src/text.h index e57fc06a..995b9a58 100644 --- a/src/text.h +++ b/src/text.h @@ -30,43 +30,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. */ - ~Text(); + void adviseXY(int x, int y); /** - * Draws the text + * Draws the text. */ - virtual void - draw(Graphics *graphics, int xOff, int yOff); + virtual void draw(Graphics *graphics, int xOff, int yOff); 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 */ + 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 @@ -77,18 +75,17 @@ class FlashText : public Text gcn::Color colour); /** - * Flash the text for so many refreshes + * Flash the text for so many refreshes. */ void flash(int time) {mTime = time; } /** - * Draws the 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 // _TMW_TEXT_H -- cgit v1.2.3-60-g2f50 From e97d5a38f868202b409b36acccd92676dbac86df Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 22 Nov 2008 18:53:56 +0100 Subject: Fixed warning about passing NULL for a non-pointer Encountered by z0ro. --- src/equipment.h | 14 +++++--------- src/net/equipmenthandler.cpp | 2 +- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/equipment.h b/src/equipment.h index 4993e4df..28a96baa 100644 --- a/src/equipment.h +++ b/src/equipment.h @@ -43,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) { mEquipment[index] = 0; } + void removeEquipment(int index) { 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/net/equipmenthandler.cpp b/src/net/equipmenthandler.cpp index 39b6e8cd..580cef6b 100644 --- a/src/net/equipmenthandler.cpp +++ b/src/net/equipmenthandler.cpp @@ -155,7 +155,7 @@ void EquipmentHandler::handleMessage(MessageIn *msg) switch (item->getId()) { case 529: case 1199: - player_node->mEquipment->setArrows(NULL); + player_node->mEquipment->setArrows(0); break; case 521: case 522: -- cgit v1.2.3-60-g2f50 From 31f40703d569478619952343bde3f73c3a576847 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 22 Nov 2008 20:07:56 +0100 Subject: Updated INSTALL file to mention git Also got rid of autogen.sh and instructed to use 'autoreconf -i' instead. --- INSTALL | 8 ++++---- autogen.sh | 13 ------------- 2 files changed, 4 insertions(+), 17 deletions(-) delete mode 100755 autogen.sh diff --git a/INSTALL b/INSTALL index 81c2d148..cd530cae 100644 --- a/INSTALL +++ b/INSTALL @@ -5,7 +5,7 @@ Homepage: http://themanaworld.org/ IRC: irc.freenode.net / #themanaworld 1) Requirements -2) Compiling The Mana World +2) Compiling And Installing The Mana World 3) Notes @@ -26,8 +26,7 @@ and some libraries. The required libraries are: * zlib 1.2.x http://www.gzip.org/zlib/ * libcurl http://curl.haxx.se/libcurl/ -If you checked TMW 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: * GNU automake 1.9 http://www.gnu.org/software/automake/ * GNU autoconf http://www.gnu.org/software/autoconf/ @@ -40,7 +39,8 @@ you to figure this out. ========================================== 1) Go to the directory you have extracted the source to. -2) If you checked out from SVN, run "./autogen.sh" to generate configure. +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 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" -- cgit v1.2.3-60-g2f50 From d011f8f984f454a76adaf04142df0daa03dd00a8 Mon Sep 17 00:00:00 2001 From: Fate Date: Sun, 23 Nov 2008 11:32:07 -0700 Subject: Grey out magic bar if matk negative, update F2 window magic bar --- src/gui/ministatus.cpp | 5 +++++ src/gui/status.cpp | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gui/ministatus.cpp b/src/gui/ministatus.cpp index 077e2331..388b5fbf 100644 --- a/src/gui/ministatus.cpp +++ b/src/gui/ministatus.cpp @@ -99,6 +99,11 @@ void MiniStatusWindow::update() mHpBar->setProgress((float) player_node->mHp / player_node->mMaxHp); mMpBar->setProgress((float) player_node->mMp / player_node->mMaxMp); + if (player_node->MATK <= 0) + mMpBar->setColor(100, 100, 100); // grey, to indicate that we lack magic + else + mMpBar->setColor(143, 192, 211); // blue, to indicate that we have magic + mXpBar->setProgress( (float) player_node->getXp() / player_node->mXpForNextLevel); diff --git a/src/gui/status.cpp b/src/gui/status.cpp index 927b3554..eebd0a21 100644 --- a/src/gui/status.cpp +++ b/src/gui/status.cpp @@ -265,7 +265,7 @@ void StatusWindow::update() } mHpBar->setProgress((float) mPlayer->mHp / (float) mPlayer->mMaxHp); - // mMpBar->setProgress((float)mPlayer->mp / (float)mPlayer->maxMp); + mMpBar->setProgress((float) mPlayer->mMp / (float) mPlayer->mMaxMp); mXpBar->setProgress( (float) mPlayer->getXp() / (float) mPlayer->mXpForNextLevel); -- cgit v1.2.3-60-g2f50 From 90e6af7dfc4e88e5a2a0d4a7f9c26b158eb7820e Mon Sep 17 00:00:00 2001 From: Fate Date: Sun, 23 Nov 2008 15:14:06 -0700 Subject: Fixed MP bar colour --- src/gui/ministatus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/ministatus.cpp b/src/gui/ministatus.cpp index d074808f..baae14a7 100644 --- a/src/gui/ministatus.cpp +++ b/src/gui/ministatus.cpp @@ -100,7 +100,7 @@ void MiniStatusWindow::update() if (player_node->MATK <= 0) mMpBar->setColor(100, 100, 100); // grey, to indicate that we lack magic else - mMpBar->setColor(143, 192, 211); // blue, to indicate that we have magic + mMpBar->setColor(26, 102, 230); // blue, to indicate that we have magic mXpBar->setProgress( (float) player_node->getXp() / player_node->mXpForNextLevel); -- cgit v1.2.3-60-g2f50 From b4b6187aaa21e702bac7c9562b449c5de50e5460 Mon Sep 17 00:00:00 2001 From: Fate Date: Sun, 23 Nov 2008 18:47:38 -0700 Subject: Delete resources after removing from the orphan list, to avoid double frees during recursion --- src/resources/resourcemanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/resources/resourcemanager.cpp b/src/resources/resourcemanager.cpp index 073e41c4..90b29374 100644 --- a/src/resources/resourcemanager.cpp +++ b/src/resources/resourcemanager.cpp @@ -130,10 +130,10 @@ void ResourceManager::cleanOrphans() else { logger->log("ResourceManager::release(%s)", res->mIdPath.c_str()); - delete res; ResourceIterator toErase = iter; ++iter; mOrphanedResources.erase(toErase); + delete res; // delete only after removal from list, to avoid issues in recursion } } -- cgit v1.2.3-60-g2f50 From 9018b65a681d41866b1e12ffb687e427c8ca76b1 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Mon, 24 Nov 2008 09:34:30 +0100 Subject: Converted some DOS newlines to UNIX --- src/tmw.rc | 46 +++++++++++++++++++++++----------------------- src/winver.h | 12 ++++++------ tools/tmxcopy/Makefile | 36 ++++++++++++++++++------------------ 3 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/tmw.rc b/src/tmw.rc index 673b2387..9661ac6b 100644 --- a/src/tmw.rc +++ b/src/tmw.rc @@ -1,23 +1,23 @@ -#include // include for version info constants - -#include "winver.h" - -A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "data/icons/tmw.ico" - -1 VERSIONINFO -FILEVERSION VER_MAJOR,VER_MINOR,VER_RELEASE,VER_BUILD -PRODUCTVERSION VER_MAJOR,VER_MINOR,VER_RELEASE,VER_BUILD -FILETYPE VFT_APP { - BLOCK "StringFileInfo" { - BLOCK "040904E4" { - VALUE "CompanyName", "The Mana World Development Team" - VALUE "FileVersion", PACKAGE_VERSION - VALUE "FileDescription", "The Mana World" - VALUE "LegalCopyright", "2004-2006 (C)" - VALUE "OriginalFilename", "tmw.exe" - VALUE "ProductName", "The Mana World MMORPG" - VALUE "ProductVersion", PACKAGE_VERSION - } - } -} - +#include // include for version info constants + +#include "winver.h" + +A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "data/icons/tmw.ico" + +1 VERSIONINFO +FILEVERSION VER_MAJOR,VER_MINOR,VER_RELEASE,VER_BUILD +PRODUCTVERSION VER_MAJOR,VER_MINOR,VER_RELEASE,VER_BUILD +FILETYPE VFT_APP { + BLOCK "StringFileInfo" { + BLOCK "040904E4" { + VALUE "CompanyName", "The Mana World Development Team" + VALUE "FileVersion", PACKAGE_VERSION + VALUE "FileDescription", "The Mana World" + VALUE "LegalCopyright", "2004-2006 (C)" + VALUE "OriginalFilename", "tmw.exe" + VALUE "ProductName", "The Mana World MMORPG" + VALUE "ProductVersion", PACKAGE_VERSION + } + } +} + diff --git a/src/winver.h b/src/winver.h index 4de9bbe5..4452784e 100644 --- a/src/winver.h +++ b/src/winver.h @@ -1,6 +1,6 @@ -/* VERSION DEFINITIONS */ -#define VER_MAJOR 0 -#define VER_MINOR 0 -#define VER_RELEASE 26 -#define VER_BUILD 0 -#define PACKAGE_VERSION "0.0.26" +/* VERSION DEFINITIONS */ +#define VER_MAJOR 0 +#define VER_MINOR 0 +#define VER_RELEASE 26 +#define VER_BUILD 0 +#define PACKAGE_VERSION "0.0.26" diff --git a/tools/tmxcopy/Makefile b/tools/tmxcopy/Makefile index 732dec36..84aa9fc6 100644 --- a/tools/tmxcopy/Makefile +++ b/tools/tmxcopy/Makefile @@ -1,18 +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 +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 -- cgit v1.2.3-60-g2f50 From 8ca7a933eb5d2b900ceb11fd8008941d59566666 Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Thu, 27 Nov 2008 12:27:45 +0000 Subject: Add note about using double quotes when whispering --- data/help/commands.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/data/help/commands.txt b/data/help/commands.txt index 248841c7..e98cb677 100644 --- a/data/help/commands.txt +++ b/data/help/commands.txt @@ -50,7 +50,10 @@ /whisper - This will send to player , if that player is logged in. + This will send to player , if that player is logged in. If the + name has a space in it, put double quotes around it like this: + + /whisper "" ##2IGNORING COMMUNICATION -- cgit v1.2.3-60-g2f50 From 65e94b56c9b7b0f69911ba37fe1a22f22e9ba09e Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 27 Nov 2008 21:46:48 +0100 Subject: Make sure to initialize joystick enabled state Joystick enabled state could end up uninitialized on unsuccesfully trying to open a joystick. In addition, the enabled state wasn't actually used in the accessor methods for the joystick buttons. --- src/game.cpp | 2 -- src/joystick.cpp | 42 ++++++++++++++---------------------------- src/joystick.h | 35 +++++++++++++++++------------------ 3 files changed, 31 insertions(+), 48 deletions(-) diff --git a/src/game.cpp b/src/game.cpp index 245e711e..9fa0129e 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -297,9 +297,7 @@ Game::Game(Network *network): // TODO: The user should be able to choose which one to use // Open the first device if (Joystick::getNumberOfJoysticks() > 0) - { joystick = new Joystick(0); - } network->registerHandler(mBeingHandler.get()); network->registerHandler(mBuySellHandler.get()); diff --git a/src/joystick.cpp b/src/joystick.cpp index b69537cf..b05e9b5f 100644 --- a/src/joystick.cpp +++ b/src/joystick.cpp @@ -24,12 +24,17 @@ #include "configuration.h" #include "log.h" +#include + int Joystick::joystickCount = 0; void Joystick::init() { SDL_InitSubSystem(SDL_INIT_JOYSTICK); - //SDL_JoystickEventState(SDL_ENABLE); + + // Have SDL call SDL_JoystickUpdate() automatically + SDL_JoystickEventState(SDL_ENABLE); + joystickCount = SDL_NumJoysticks(); logger->log("%i joysticks/gamepads found", joystickCount); for (int i = 0; i < joystickCount; i++) @@ -37,11 +42,11 @@ void Joystick::init() } Joystick::Joystick(int no): - mDirection(0), mCalibrating(false) + mDirection(0), + mCalibrating(false), + mEnabled(false) { - // TODO Bail out here? - if (no > joystickCount) - return; + assert(no < joystickCount); mJoystick = SDL_JoystickOpen(no); @@ -66,50 +71,39 @@ Joystick::Joystick(int no): Joystick::~Joystick() { - SDL_JoystickClose(mJoystick); + SDL_JoystickClose(mJoystick); } void Joystick::update() { mDirection = 0; - SDL_JoystickUpdate(); - // When calibrating, don't bother the outside with our state if (mCalibrating) { doCalibration(); return; }; - if (!mEnabled) return; + if (!mEnabled) + return; // X-Axis int position = SDL_JoystickGetAxis(mJoystick, 0); if (position >= mRightTolerance) - { mDirection |= RIGHT; - } else if (position <= mLeftTolerance) - { mDirection |= LEFT; - } // Y-Axis position = SDL_JoystickGetAxis(mJoystick, 1); if (position <= mUpTolerance) - { mDirection |= UP; - } else if (position >= mDownTolerance) - { mDirection |= DOWN; - } // Buttons for (int i = 0; i < MAX_BUTTONS; i++) - { mButtons[i] = (SDL_JoystickGetButton(mJoystick, i) == 1); - } } void Joystick::startCalibration() @@ -126,24 +120,16 @@ void Joystick::doCalibration() // X-Axis int position = SDL_JoystickGetAxis(mJoystick, 0); if (position > mRightTolerance) - { mRightTolerance = position; - } else if (position < mLeftTolerance) - { mLeftTolerance = position; - } // Y-Axis position = SDL_JoystickGetAxis(mJoystick, 1); if (position > mDownTolerance) - { mDownTolerance = position; - } else if (position < mUpTolerance) - { mUpTolerance = position; - } } void Joystick::finishCalibration() @@ -157,5 +143,5 @@ void Joystick::finishCalibration() bool Joystick::buttonPressed(unsigned char no) const { - return (no < MAX_BUTTONS) ? mButtons[no] : false; + return (mEnabled && no < MAX_BUTTONS) ? mButtons[no] : false; } diff --git a/src/joystick.h b/src/joystick.h index 4cc1babd..ee029915 100644 --- a/src/joystick.h +++ b/src/joystick.h @@ -35,7 +35,12 @@ class Joystick /** * Directions, to be used as bitmask values. */ - enum { UP = 1, DOWN = 2, LEFT = 4, RIGHT = 8 }; + enum { + UP = 1, + DOWN = 2, + LEFT = 4, + RIGHT = 8 + }; /** * Initializes the joystick subsystem. @@ -55,33 +60,27 @@ class Joystick ~Joystick(); - bool - isEnabled() const { return mEnabled; } + bool isEnabled() const { return mEnabled; } - void - setEnabled(bool enabled) { mEnabled = enabled; } + void setEnabled(bool enabled) { mEnabled = enabled; } /** * Updates the direction and button information. */ - void - update(); + void update(); - void - startCalibration(); + void startCalibration(); - void - finishCalibration(); + void finishCalibration(); - bool - isCalibrating() const { return mCalibrating; } + bool isCalibrating() const { return mCalibrating; } bool buttonPressed(unsigned char no) const; - bool isUp() const { return mDirection & UP; }; - bool isDown() const { return mDirection & DOWN; }; - bool isLeft() const { return mDirection & LEFT; }; - bool isRight() const { return mDirection & RIGHT; }; + bool isUp() const { return mEnabled && (mDirection & UP); }; + bool isDown() const { return mEnabled && (mDirection & DOWN); }; + bool isLeft() const { return mEnabled && (mDirection & LEFT); }; + bool isRight() const { return mEnabled && (mDirection & RIGHT); }; protected: unsigned char mDirection; @@ -97,4 +96,4 @@ class Joystick void doCalibration(); }; -#endif +#endif // _TMW_JOYSTICK_H -- cgit v1.2.3-60-g2f50 From b5ef3811e697a6a4dc963399424115c53502a4e5 Mon Sep 17 00:00:00 2001 From: Fate Date: Fri, 28 Nov 2008 21:21:27 -0700 Subject: Initialise mSkillPoint variable to avoid erroneous skill point displays during game startup --- src/localplayer.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/localplayer.cpp b/src/localplayer.cpp index f67b3185..bcb4820f 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -42,6 +42,7 @@ LocalPlayer *player_node = NULL; LocalPlayer::LocalPlayer(Uint32 id, Uint16 job, Map *map): Player(id, job, map), + mSkillPoint(0), mXpForNextLevel(0), mAttackRange(0), mXp(0), mNetwork(0), -- cgit v1.2.3-60-g2f50 From 4aeedb10f22d0dc307c9f733d0f1c79b70b9c200 Mon Sep 17 00:00:00 2001 From: Fate Date: Fri, 28 Nov 2008 21:22:10 -0700 Subject: Sanity-check index for Equipment::removeEquipment(int) --- src/equipment.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/equipment.h b/src/equipment.h index 28a96baa..e6145d12 100644 --- a/src/equipment.h +++ b/src/equipment.h @@ -48,7 +48,7 @@ class Equipment /** * Remove equipment from the given slot. */ - void removeEquipment(int index) { mEquipment[index] = 0; } + void removeEquipment(int index) { if (index >= 0 && index < EQUIPMENT_SIZE) mEquipment[index] = 0; } /** * Returns the item used in the arrow slot. -- cgit v1.2.3-60-g2f50 From b08958152524cb5c26bab8b8a9943f71acfbded3 Mon Sep 17 00:00:00 2001 From: Fate Date: Fri, 28 Nov 2008 21:49:25 -0700 Subject: Changed inventory container protocol to guarantee that we have no stale item references lying around --- src/gui/itemcontainer.cpp | 43 +++++++++++++++++++++++-------------------- src/gui/itemcontainer.h | 6 +++--- src/inventory.cpp | 2 +- 3 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/gui/itemcontainer.cpp b/src/gui/itemcontainer.cpp index 5342e3fe..1e12a1ae 100644 --- a/src/gui/itemcontainer.cpp +++ b/src/gui/itemcontainer.cpp @@ -39,9 +39,11 @@ const int ItemContainer::gridWidth = 36; // item icon width + 4 const int ItemContainer::gridHeight = 42; // item icon height + 10 +static const int NO_ITEM = -1; + ItemContainer::ItemContainer(Inventory *inventory): mInventory(inventory), - mSelectedItem(NULL) + mSelectedItemIndex(NO_ITEM) { ResourceManager *resman = ResourceManager::getInstance(); @@ -82,13 +84,6 @@ void ItemContainer::draw(gcn::Graphics *graphics) columns = 1; } - // Reset selected item when quantity not above 0 (should probably be made - // sure somewhere else) - if (mSelectedItem && mSelectedItem->getQuantity() <= 0) - { - selectNone(); - } - /* * eAthena seems to start inventory from the 3rd slot. Still a mystery to * us why, make sure not to copy this oddity to our own server. @@ -104,7 +99,7 @@ void ItemContainer::draw(gcn::Graphics *graphics) int itemY = ((i - 2) / columns) * gridHeight; // Draw selection image below selected item - if (mSelectedItem == item) + if (mSelectedItemIndex == i) { static_cast(graphics)->drawImage( mSelImg, itemX, itemY); @@ -147,19 +142,30 @@ void ItemContainer::recalculateHeight() Item *ItemContainer::getSelectedItem() const { - return mSelectedItem; + if (mSelectedItemIndex == NO_ITEM) + return NULL; + return mInventory->getItem(mSelectedItemIndex); } void ItemContainer::selectNone() { - setSelectedItem(NULL); + setSelectedItemIndex(NO_ITEM); } -void ItemContainer::setSelectedItem(Item *item) +void ItemContainer::setSelectedItemIndex(int index) { - if (mSelectedItem != item) + int newSelectedItemIndex; + + // mMaxItems is broken because of eAthena's odd inventory layout and the client's refusal + // to handle it properly, so we work around the issue right here. + if (index < 0 || index > mMaxItems + 1) + newSelectedItemIndex = NO_ITEM; + else + newSelectedItemIndex = index; + + if (mSelectedItemIndex != newSelectedItemIndex) { - mSelectedItem = item; + mSelectedItemIndex = newSelectedItemIndex; distributeValueChangedEvent(); } } @@ -189,13 +195,10 @@ void ItemContainer::mousePressed(gcn::MouseEvent &event) itemShortcut->setItemSelected(-1); // Fix for old server, it should be: if (index >= mMaxItems) - if (index > mMaxItems + 1) - { - setSelectedItem(NULL); - return; - } + setSelectedItemIndex(index); + Item *item = mInventory->getItem(index); - setSelectedItem(item); + if (item) itemShortcut->setItemSelected(item->getId()); } diff --git a/src/gui/itemcontainer.h b/src/gui/itemcontainer.h index 60b62f08..fd77fea2 100644 --- a/src/gui/itemcontainer.h +++ b/src/gui/itemcontainer.h @@ -105,9 +105,9 @@ class ItemContainer : public gcn::Widget, public gcn::MouseListener, private: /** - * Sets the currently selected item. + * Sets the currently selected item. Invalid (e.g., negative) indices set `no item'. */ - void setSelectedItem(Item *item); + void setSelectedItemIndex(int index); /** * Determine and set the height of the container. @@ -121,7 +121,7 @@ class ItemContainer : public gcn::Widget, public gcn::MouseListener, Inventory *mInventory; Image *mSelImg; - Item *mSelectedItem; + int mSelectedItemIndex; int mMaxItems; diff --git a/src/inventory.cpp b/src/inventory.cpp index 938d23d3..859213fe 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 >= INVENTORY_SIZE) + if (index < 0 || index >= INVENTORY_SIZE || mItems[index]->getQuantity() <= 0) return 0; return mItems[index]; -- cgit v1.2.3-60-g2f50 From 5147a78f18990c037e66dd056ef99d63395a2746 Mon Sep 17 00:00:00 2001 From: Fate Date: Fri, 28 Nov 2008 21:51:11 -0700 Subject: Eliminated silly C++ warning --- src/localplayer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/localplayer.cpp b/src/localplayer.cpp index bcb4820f..3550b092 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -42,9 +42,9 @@ LocalPlayer *player_node = NULL; LocalPlayer::LocalPlayer(Uint32 id, Uint16 job, Map *map): Player(id, job, map), - mSkillPoint(0), mXpForNextLevel(0), mAttackRange(0), + mSkillPoint(0), mXp(0), mNetwork(0), mTarget(NULL), mPickUpTarget(NULL), mTrading(false), mGoingToTarget(false), -- cgit v1.2.3-60-g2f50 From 84069b54947b3916329cbacf3211d1a68dfcfefa Mon Sep 17 00:00:00 2001 From: Fate Date: Fri, 28 Nov 2008 21:58:11 -0700 Subject: Fixed potential segfault introduced while adding extra checks to inventory --- src/inventory.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/inventory.cpp b/src/inventory.cpp index 859213fe..58c75f2c 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 >= INVENTORY_SIZE || mItems[index]->getQuantity() <= 0) + if (index < 0 || index >= INVENTORY_SIZE || !mItems[index] || mItems[index]->getQuantity() <= 0) return 0; return mItems[index]; -- cgit v1.2.3-60-g2f50 From 53ee2ec3a7efd6ff62bff3abdb87eccec6fbe5c9 Mon Sep 17 00:00:00 2001 From: Fate Date: Fri, 28 Nov 2008 22:45:22 -0700 Subject: Remember last equipped item ID so that we jump to/re-find an item of the same ID whenever we lose the current one --- src/gui/itemcontainer.cpp | 40 ++++++++++++++++++++++++++++++++++++---- src/gui/itemcontainer.h | 12 +++++++++--- 2 files changed, 45 insertions(+), 7 deletions(-) diff --git a/src/gui/itemcontainer.cpp b/src/gui/itemcontainer.cpp index 1e12a1ae..9115b1fb 100644 --- a/src/gui/itemcontainer.cpp +++ b/src/gui/itemcontainer.cpp @@ -43,7 +43,8 @@ static const int NO_ITEM = -1; ItemContainer::ItemContainer(Inventory *inventory): mInventory(inventory), - mSelectedItemIndex(NO_ITEM) + mSelectedItemIndex(NO_ITEM), + mLastSelectedItemId(NO_ITEM) { ResourceManager *resman = ResourceManager::getInstance(); @@ -140,10 +141,13 @@ void ItemContainer::recalculateHeight() setHeight(height); } -Item *ItemContainer::getSelectedItem() const +Item *ItemContainer::getSelectedItem() { + refindSelectedItem(); // Make sure that we're still current + if (mSelectedItemIndex == NO_ITEM) return NULL; + return mInventory->getItem(mSelectedItemIndex); } @@ -152,13 +156,36 @@ void ItemContainer::selectNone() setSelectedItemIndex(NO_ITEM); } +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 + 1; i++) + if (mInventory->getItem(i) && + mInventory->getItem(i)->getId() == mLastSelectedItemId) { + mSelectedItemIndex = i; + return; + } + } + + mLastSelectedItemId = mSelectedItemIndex = NO_ITEM; +} + + void ItemContainer::setSelectedItemIndex(int index) { int newSelectedItemIndex; // mMaxItems is broken because of eAthena's odd inventory layout and the client's refusal // to handle it properly, so we work around the issue right here. - if (index < 0 || index > mMaxItems + 1) + if (index < 0 || index > mMaxItems + 1 || mInventory->getItem(index) == NULL) newSelectedItemIndex = NO_ITEM; else newSelectedItemIndex = index; @@ -166,6 +193,12 @@ void ItemContainer::setSelectedItemIndex(int index) if (mSelectedItemIndex != newSelectedItemIndex) { mSelectedItemIndex = newSelectedItemIndex; + + if (mSelectedItemIndex == NO_ITEM) + mLastSelectedItemId = NO_ITEM; + else + mLastSelectedItemId = mInventory->getItem(index)->getId(); + distributeValueChangedEvent(); } } @@ -194,7 +227,6 @@ void ItemContainer::mousePressed(gcn::MouseEvent &event) int index = mx / gridWidth + ((my / gridHeight) * columns) + 2; itemShortcut->setItemSelected(-1); - // Fix for old server, it should be: if (index >= mMaxItems) setSelectedItemIndex(index); Item *item = mInventory->getItem(index); diff --git a/src/gui/itemcontainer.h b/src/gui/itemcontainer.h index fd77fea2..34545df8 100644 --- a/src/gui/itemcontainer.h +++ b/src/gui/itemcontainer.h @@ -78,7 +78,7 @@ class ItemContainer : public gcn::Widget, public gcn::MouseListener, /** * Returns the selected item. */ - Item* getSelectedItem() const; + Item* getSelectedItem(); /** * Sets selected item to NULL. @@ -109,19 +109,25 @@ class ItemContainer : public gcn::Widget, public gcn::MouseListener, */ void setSelectedItemIndex(int index); + /** + * Find the current item index by the most recently used item ID + */ + 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 mMaxItems; -- cgit v1.2.3-60-g2f50 From 017e5dd93498dd3dcf168bec95725423564c177c Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Mon, 1 Dec 2008 22:26:20 +0100 Subject: Fixed a compilation error caused by path relevance. --- src/gui/inventorywindow.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp index 6a5a8b37..3eae6c60 100644 --- a/src/gui/inventorywindow.cpp +++ b/src/gui/inventorywindow.cpp @@ -28,12 +28,13 @@ #include "button.h" #include "gui.h" -#include "inventory.h" #include "item_amount.h" #include "itemcontainer.h" #include "scrollarea.h" #include "viewport.h" - + + +#include "../inventory.h" #include "../item.h" #include "../localplayer.h" -- cgit v1.2.3-60-g2f50 From 07c2da75b7d994ab097e7c50d865bee929623685 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Tue, 2 Dec 2008 20:28:22 +0100 Subject: Fix background on resolutions other than 800x600 The image is now centered and a gray background is drawn behind it so that parts that are not covered by the image don't show redrawing issues. --- src/main.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 91ba4d53..7da504ec 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -758,7 +758,16 @@ int main(int argc, char *argv[]) progressBar->setProgress(0.0f); } - graphics->drawImage(login_wallpaper, 0, 0); + if (graphics->getWidth() > login_wallpaper->getWidth() || + graphics->getHeight() > login_wallpaper->getHeight()) + { + graphics->setColor(gcn::Color(64, 64, 64)); + graphics->fillRectangle(gcn::Rectangle( + 0, 0, graphics->getWidth(), graphics->getHeight())); + } + graphics->drawImage(login_wallpaper, + (graphics->getWidth() - login_wallpaper->getWidth()) / 2, + (graphics->getHeight() - login_wallpaper->getHeight()) / 2); gui->draw(); graphics->updateScreen(); -- cgit v1.2.3-60-g2f50 From a9fd68ab999119bf9c2b42718a715009894d0102 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Wed, 3 Dec 2008 15:12:27 +0100 Subject: Converted DOS to UNIX newlines --- src/gui/inventorywindow.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp index 3eae6c60..f38c118e 100644 --- a/src/gui/inventorywindow.cpp +++ b/src/gui/inventorywindow.cpp @@ -32,8 +32,7 @@ #include "itemcontainer.h" #include "scrollarea.h" #include "viewport.h" - - + #include "../inventory.h" #include "../item.h" #include "../localplayer.h" -- cgit v1.2.3-60-g2f50 From e95578fcdd9c6af250f84d8a368c10764039349e Mon Sep 17 00:00:00 2001 From: Ira Rice Date: Tue, 2 Dec 2008 16:17:42 -0700 Subject: Fixed status window so that the job level is displayed next to the level, as well as making the job level bar more consistent. Signed-off-by: Ira Rice --- src/gui/status.cpp | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/gui/status.cpp b/src/gui/status.cpp index 56c36e0a..b9f28562 100644 --- a/src/gui/status.cpp +++ b/src/gui/status.cpp @@ -48,6 +48,7 @@ StatusWindow::StatusWindow(LocalPlayer *player): mLvlLabel = new gcn::Label("Level:"); mGpLabel = new gcn::Label("Money:"); + mJobLvlLabel = new gcn::Label("Job:"); mHpLabel = new gcn::Label("HP:"); mHpBar = new ProgressBar(1.0f, 80, 15, 0, 171, 34); @@ -62,7 +63,7 @@ StatusWindow::StatusWindow(LocalPlayer *player): mMpValueLabel = new gcn::Label(""); mJobXpLabel = new gcn::Label("Job:"); - mJobXpBar = new ProgressBar(1.0f, 60, 15, 220, 135, 203); + mJobXpBar = new ProgressBar(1.0f, 80, 15, 220, 135, 203); mJobValueLabel = new gcn::Label(""); int y = 3; @@ -70,6 +71,8 @@ StatusWindow::StatusWindow(LocalPlayer *player): mLvlLabel->setPosition(x, y); x += mLvlLabel->getWidth() + 40; + mJobLvlLabel->setPosition(x, y); + x += mJobLvlLabel->getWidth() + 40; mGpLabel->setPosition(x, y); y += mLvlLabel->getHeight() + 5; // Next Row @@ -95,10 +98,11 @@ StatusWindow::StatusWindow(LocalPlayer *player): mMpValueLabel->setPosition(x, y); mJobXpLabel->setPosition(175, y); - mJobXpBar->setPosition(225, y); + mJobXpBar->setPosition(205, y); mJobValueLabel->setPosition(290, y); add(mLvlLabel); + add(mJobLvlLabel); add(mGpLabel); add(mHpLabel); add(mHpValueLabel); @@ -226,12 +230,12 @@ void StatusWindow::update() mLvlLabel->setCaption("Level: " + toString(mPlayer->mLevel)); mLvlLabel->adjustSize(); + mJobLvlLabel->setCaption("Job: " + toString(mPlayer->mJobLevel)); + mJobLvlLabel->adjustSize(); + mGpLabel->setCaption("Money: " + toString(mPlayer->mGp) + " GP"); mGpLabel->adjustSize(); - mJobXpLabel->setCaption("Job: " + toString(mPlayer->mJobLevel)); - mJobXpLabel->adjustSize(); - mHpValueLabel->setCaption(toString(mPlayer->mHp) + "/" + toString(mPlayer->mMaxHp)); mHpValueLabel->adjustSize(); @@ -334,8 +338,10 @@ void StatusWindow::update() mStatsReflexPoints->adjustSize(); // Update Second column widgets position - mGpLabel->setPosition(mLvlLabel->getX() + mLvlLabel->getWidth() + 20, - mLvlLabel->getY()); + mJobLvlLabel->setPosition(mLvlLabel->getX() + mLvlLabel->getWidth() + 20, + mLvlLabel->getY()); + mGpLabel->setPosition(mJobLvlLabel->getX() + mJobLvlLabel->getWidth() + 20, + mJobLvlLabel->getY()); mXpLabel->setPosition( mHpValueLabel->getX() + mHpValueLabel->getWidth() + 10, @@ -347,11 +353,13 @@ void StatusWindow::update() mXpBar->getX() + mXpBar->getWidth() + 5, mXpLabel->getY()); - mJobXpLabel->setPosition(mXpLabel->getX(), mMpLabel->getY()); + mJobXpLabel->setPosition(mXpBar->getX() - mJobXpLabel->getWidth() - 5, + mMpLabel->getY()); mJobXpBar->setPosition( - mXpBar->getX() + mXpBar->getWidth() - mJobXpBar->getWidth(), + mJobXpLabel->getX() + mJobXpLabel->getWidth() + 5, mJobXpLabel->getY()); - mJobValueLabel->setPosition(290, mJobXpLabel->getY()); + mJobValueLabel->setPosition(mJobXpBar->getX() + mJobXpBar->getWidth() + 5, + mJobXpLabel->getY()); } void StatusWindow::draw(gcn::Graphics *g) -- cgit v1.2.3-60-g2f50 From 56de3bcc125fe6fd184e56b6e83a168d59c2d9c9 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Wed, 3 Dec 2008 23:20:14 +0100 Subject: Adding missing mJobLvlLabel from last commit --- src/gui/status.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gui/status.h b/src/gui/status.h index 55ed393e..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, *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; -- cgit v1.2.3-60-g2f50 From 074236254a3e648914142e21a53b41fbc35e58d8 Mon Sep 17 00:00:00 2001 From: Ira Rice Date: Sat, 22 Nov 2008 01:56:05 +0000 Subject: While there is still a small visual artifact, this patch fixes the buy window so that it properly reports how much money you have. --- src/net/buysellhandler.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/net/buysellhandler.cpp b/src/net/buysellhandler.cpp index 5eb76a46..16cfdc06 100644 --- a/src/net/buysellhandler.cpp +++ b/src/net/buysellhandler.cpp @@ -114,6 +114,9 @@ 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); } break; -- cgit v1.2.3-60-g2f50 From 0f2eef4278b258bb59968686b48f7de0ecd923e3 Mon Sep 17 00:00:00 2001 From: Ira Rice Date: Fri, 21 Nov 2008 03:38:52 +0000 Subject: Added the setup button to show when the client is loaded, since all of the settings in it can be changed on client startup and aren't game specific. --- src/main.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 7da504ec..c192b041 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -64,6 +64,7 @@ #include "gui/ok_dialog.h" #include "gui/progressbar.h" #include "gui/register.h" +#include "gui/setup.h" #include "gui/updatewindow.h" #include "gui/textfield.h" @@ -86,6 +87,16 @@ #include #endif +namespace { + struct SetupListener : public gcn::ActionListener + { + /** + * Called when receiving actions from widget. + */ + void action(const gcn::ActionEvent &event); + } listener; +} + // Account infos char n_server, n_character; @@ -111,6 +122,8 @@ LoginData loginData; LockedArray charInfo(MAX_SLOT + 1); +extern Window *setupWindow; + // This anonymous namespace hides whatever is inside from other modules. namespace { @@ -408,6 +421,7 @@ void exit_engine() delete gui; delete graphics; + delete setupWindow; // Shutdown libxml xmlCleanupParser(); @@ -675,6 +689,7 @@ int main(int argc, char *argv[]) Game *game = NULL; Window *currentDialog = NULL; Image *login_wallpaper = NULL; + setupWindow = new Setup(); gcn::Container *top = static_cast(gui->getTop()); #ifdef PACKAGE_VERSION @@ -687,6 +702,9 @@ int main(int argc, char *argv[]) top->add(progressLabel, 15 + progressBar->getWidth(), progressBar->getY() + 4); progressBar->setVisible(false); + gcn::Button *setup = new Button("Setup", "Setup", &listener); + setup->setPosition(top->getWidth() - setup->getWidth() - 3, 3); + top->add(setup); sound.playMusic("Magick - Real.ogg"); @@ -964,3 +982,22 @@ int main(int argc, char *argv[]) PHYSFS_deinit(); return 0; } + +void SetupListener::action(const gcn::ActionEvent &event) +{ + Window *window = NULL; + + if (event.getId() == "Setup") + { + window = setupWindow; + } + + if (window) + { + window->setVisible(!window->isVisible()); + if (window->isVisible()) + { + window->requestMoveToTop(); + } + } +} -- cgit v1.2.3-60-g2f50 From f9cb8f4bab6ab4552b6197d433a267cb4b7941b0 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Wed, 3 Dec 2008 23:51:01 +0100 Subject: Disabled "Reset Windows" button when appropriate You shouldn't be able to press "Reset Windows" before the in-game windows have been created. Previously this would crash. --- src/gui/setup.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/gui/setup.cpp b/src/gui/setup.cpp index 6be0399c..4fae514f 100644 --- a/src/gui/setup.cpp +++ b/src/gui/setup.cpp @@ -59,6 +59,10 @@ Setup::Setup(): x -= btn->getWidth() + 5; btn->setPosition(x, height - btn->getHeight() - 5); add(btn); + + // Disable this button when the windows aren't created yet + if (!strcmp(*curBtn, "Reset Windows")) + btn->setEnabled(statusWindow != NULL); } TabbedContainer *panel = new TabbedContainer(); @@ -111,6 +115,11 @@ void Setup::action(const gcn::ActionEvent &event) } else if (event.getId() == "Reset Windows") { + // Bail out if this action happens to be activated before the windows + // are created (though it should be disabled then) + if (!statusWindow) + return; + statusWindow->resetToDefaultSize(); minimap->resetToDefaultSize(); chatWindow->resetToDefaultSize(); -- cgit v1.2.3-60-g2f50 From 35b44ad9dc02479390b3a04d31ec7dc321e1ccec Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Wed, 3 Dec 2008 23:57:28 +0100 Subject: NEWS file updates for imported commits --- NEWS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NEWS b/NEWS index 3fed4904..9d9d24e5 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,7 @@ - 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) - 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 @@ -15,6 +16,7 @@ - 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 -- cgit v1.2.3-60-g2f50 From a4e1725ff13dfe72dc83611e014cc5bf2f213fa8 Mon Sep 17 00:00:00 2001 From: Ira Rice Date: Thu, 4 Dec 2008 00:40:48 +0100 Subject: Deleted a few dangling pointers noticed by Bjorn. Signed-off-by: Ira Rice --- src/main.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index c192b041..8371c941 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -421,7 +421,6 @@ void exit_engine() delete gui; delete graphics; - delete setupWindow; // Shutdown libxml xmlCleanupParser(); @@ -898,9 +897,13 @@ int main(int argc, char *argv[]) #endif delete progressBar; delete progressLabel; + delete setup; + delete setupWindow; progressBar = NULL; progressLabel = NULL; currentDialog = NULL; + setup = NULL; + setupWindow = NULL; login_wallpaper->decRef(); login_wallpaper = NULL; @@ -969,6 +972,8 @@ int main(int argc, char *argv[]) #endif delete progressBar; delete progressLabel; + delete setup; + delete setupWindow; delete network; SDLNet_Quit(); -- cgit v1.2.3-60-g2f50 From 36ae10688b870c4d6029e20ef9a063a2db120e6a Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 4 Dec 2008 00:47:20 +0100 Subject: Don't reuse the setupWindow variable from the game Fixes crash on exit caused by double deletion. --- src/main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 8371c941..e246b6a9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -88,6 +88,8 @@ #endif namespace { + Window *setupWindow = 0; + struct SetupListener : public gcn::ActionListener { /** @@ -122,8 +124,6 @@ LoginData loginData; LockedArray charInfo(MAX_SLOT + 1); -extern Window *setupWindow; - // This anonymous namespace hides whatever is inside from other modules. namespace { -- cgit v1.2.3-60-g2f50 From 6ac9c3bce62a8fc79e23477417188108f0ad9fa6 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 5 Dec 2008 21:38:31 +0100 Subject: Fix race condition with a std::string access The downloading thread was writing to a std::string while the main thread was trying to draw it, for example. Now access to the label caption is guarded with a mutex. Should fix crashes while downloading updates. --- src/Makefile.am | 1 + src/gui/updatewindow.cpp | 31 +++++++++------- src/gui/updatewindow.h | 13 +++++-- src/utils/mutex.h | 94 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 124 insertions(+), 15 deletions(-) create mode 100644 src/utils/mutex.h diff --git a/src/Makefile.am b/src/Makefile.am index 867953ab..3387690a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -219,6 +219,7 @@ tmw_SOURCES = gui/widgets/resizegrip.cpp \ utils/strprintf.h \ utils/tostring.h \ utils/trim.h \ + utils/mutex.h \ utils/xml.cpp \ utils/xml.h \ animatedsprite.cpp \ diff --git a/src/gui/updatewindow.cpp b/src/gui/updatewindow.cpp index ea0f86cd..6083725e 100644 --- a/src/gui/updatewindow.cpp +++ b/src/gui/updatewindow.cpp @@ -47,7 +47,7 @@ /** * Calculates the Alder-32 checksum for the given file. */ -unsigned long fadler32(FILE *file) +static unsigned long fadler32(FILE *file) { // Obtain file size fseek(file, 0, SEEK_END); @@ -146,15 +146,9 @@ UpdaterWindow::UpdaterWindow(const std::string &updateHost, UpdaterWindow::~UpdaterWindow() { if (mThread) - { - SDL_WaitThread(mThread, NULL); - mThread = NULL; - } + SDL_WaitThread(mThread, NULL); - if (mMemoryBuffer) - { - free(mMemoryBuffer); - } + free(mMemoryBuffer); // Remove possibly leftover temporary download ::remove((mUpdatesDir + "/download.temp").c_str()); @@ -169,8 +163,9 @@ void UpdaterWindow::setProgress(float p) void UpdaterWindow::setLabel(const std::string &str) { - mLabel->setCaption(str); - mLabel->adjustSize(); + // Do delayed label text update, since Guichan isn't thread-safe + MutexLocker lock(mLabelMutex); + mNewLabelCaption = str; } void UpdaterWindow::enable() @@ -413,6 +408,17 @@ void UpdaterWindow::logic() // Update Scroll logic mScrollArea->logic(); + // Synchronize label caption when necessary + { + MutexLocker lock(mLabelMutex); + + if (mLabel->getCaption() != mNewLabelCaption) + { + mLabel->setCaption(mNewLabelCaption); + mLabel->adjustSize(); + } + } + switch (mDownloadStatus) { case UPDATE_ERROR: @@ -434,7 +440,8 @@ void UpdaterWindow::logic() mBrowserBox->addRow("##1 It is strongly recommended that"); mBrowserBox->addRow("##1 you try again later"); mBrowserBox->addRow(mCurlError); - mScrollArea->setVerticalScrollAmount(mScrollArea->getVerticalMaxScroll()); + mScrollArea->setVerticalScrollAmount( + mScrollArea->getVerticalMaxScroll()); mDownloadStatus = UPDATE_COMPLETE; break; case UPDATE_NEWS: diff --git a/src/gui/updatewindow.h b/src/gui/updatewindow.h index d7e3c4c7..a7dfe2cb 100644 --- a/src/gui/updatewindow.h +++ b/src/gui/updatewindow.h @@ -30,12 +30,13 @@ #include "../guichanfwd.h" +#include "../utils/mutex.h" + class BrowserBox; class Button; class ProgressBar; class ScrollArea; -struct SDL_mutex; struct SDL_Thread; /** @@ -88,7 +89,7 @@ class UpdaterWindow : public Window, public gcn::ActionListener int updateState; - protected: +private: void download(); /** @@ -133,6 +134,12 @@ class UpdaterWindow : public Window, public gcn::ActionListener /** The file currently downloading. */ std::string mCurrentFile; + /** The new label caption to be set in the logic method. */ + std::string mNewLabelCaption; + + /** The mutex used to guard access to mNewLabelCaption. */ + Mutex mLabelMutex; + /** The Adler32 checksum of the file currently downloading. */ unsigned long mCurrentChecksum; @@ -164,7 +171,7 @@ class UpdaterWindow : public Window, public gcn::ActionListener Button *mCancelButton; /**< Button to stop the update process. */ Button *mPlayButton; /**< Button to start playing. */ ProgressBar *mProgressBar; /**< Update progress bar. */ - BrowserBox* mBrowserBox; /**< Box to display news. */ + BrowserBox *mBrowserBox; /**< Box to display news. */ ScrollArea *mScrollArea; /**< Used to scroll news box. */ }; diff --git a/src/utils/mutex.h b/src/utils/mutex.h new file mode 100644 index 00000000..6c35987c --- /dev/null +++ b/src/utils/mutex.h @@ -0,0 +1,94 @@ +/* + * 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 TMW_MUTEX_H +#define TMW_MUTEX_H + +#include + +#include "../log.h" + +/** + * A mutex provides mutual exclusion of access to certain data that is + * accessed by multiple threads. + */ +class Mutex +{ +public: + Mutex(); + ~Mutex(); + + void lock(); + void unlock(); + +private: + SDL_mutex *mMutex; +}; + +/** + * A convenience class for locking a mutex. + */ +class MutexLocker +{ +public: + MutexLocker(Mutex mutex); + ~MutexLocker(); + +private: + Mutex mMutex; +}; + + +inline Mutex::Mutex() +{ + mMutex = SDL_CreateMutex(); +} + +inline Mutex::~Mutex() +{ + SDL_DestroyMutex(mMutex); +} + +inline void Mutex::lock() +{ + if (SDL_mutexP(mMutex) == -1) + logger->log("Mutex locking failed: %s", SDL_GetError()); +} + +inline void Mutex::unlock() +{ + if (SDL_mutexV(mMutex) == -1) + logger->log("Mutex unlocking failed: %s", SDL_GetError()); +} + + +inline MutexLocker::MutexLocker(Mutex mutex): + mMutex(mutex) +{ + mMutex.lock(); +} + +inline MutexLocker::~MutexLocker() +{ + mMutex.unlock(); +} + +#endif // TMW_MUTEX_H -- cgit v1.2.3-60-g2f50 From 06d0205bab253ec5d01e8483ab639a092fe117c5 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 5 Dec 2008 22:26:38 +0100 Subject: Fixed MutexLocker to not work on a copy The Mutex class wasn't meant to be copied around. Silly last minute refactorings leading to untested code... --- src/gui/updatewindow.cpp | 4 ++-- src/utils/mutex.h | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/gui/updatewindow.cpp b/src/gui/updatewindow.cpp index 6083725e..c0344b72 100644 --- a/src/gui/updatewindow.cpp +++ b/src/gui/updatewindow.cpp @@ -164,7 +164,7 @@ void UpdaterWindow::setProgress(float p) void UpdaterWindow::setLabel(const std::string &str) { // Do delayed label text update, since Guichan isn't thread-safe - MutexLocker lock(mLabelMutex); + MutexLocker lock(&mLabelMutex); mNewLabelCaption = str; } @@ -410,7 +410,7 @@ void UpdaterWindow::logic() // Synchronize label caption when necessary { - MutexLocker lock(mLabelMutex); + MutexLocker lock(&mLabelMutex); if (mLabel->getCaption() != mNewLabelCaption) { diff --git a/src/utils/mutex.h b/src/utils/mutex.h index 6c35987c..62c6b4e1 100644 --- a/src/utils/mutex.h +++ b/src/utils/mutex.h @@ -40,6 +40,9 @@ public: void unlock(); private: + Mutex(const Mutex&); // prevent copying + Mutex& operator=(const Mutex&); + SDL_mutex *mMutex; }; @@ -49,11 +52,11 @@ private: class MutexLocker { public: - MutexLocker(Mutex mutex); + MutexLocker(Mutex *mutex); ~MutexLocker(); private: - Mutex mMutex; + Mutex *mMutex; }; @@ -80,15 +83,15 @@ inline void Mutex::unlock() } -inline MutexLocker::MutexLocker(Mutex mutex): +inline MutexLocker::MutexLocker(Mutex *mutex): mMutex(mutex) { - mMutex.lock(); + mMutex->lock(); } inline MutexLocker::~MutexLocker() { - mMutex.unlock(); + mMutex->unlock(); } #endif // TMW_MUTEX_H -- cgit v1.2.3-60-g2f50 From 9559fdb347054e945940980efdbbe83615ce9733 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 5 Dec 2008 23:01:54 +0100 Subject: Fade out mouse cursor when not used for some time The mouse cursor will now disappear when not used for 15 seconds. When using OpenGL it will even fade. Requested by doorsman. --- src/gui/gui.cpp | 47 +++++++++++++++++++++++++++++++++++------------ src/gui/gui.h | 11 +++++++++++ 2 files changed, 46 insertions(+), 12 deletions(-) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 691cfe2b..96415298 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -38,6 +38,7 @@ #include "../graphics.h" #include "../log.h" +#include "../resources/image.h" #include "../resources/imageset.h" #include "../resources/resourcemanager.h" #include "../resources/imageloader.h" @@ -75,6 +76,8 @@ class GuiConfigListener : public ConfigListener Gui::Gui(Graphics *graphics): mCustomCursor(false), mMouseCursors(NULL), + mMouseCursorAlpha(1.0f), + mMouseInactivityTimer(0), mCursorType(CURSOR_POINTER) { logger->log("Initializing GUI..."); @@ -174,32 +177,47 @@ Gui::~Gui() delete hitBlueFont; delete hitYellowFont; - if (mMouseCursors) { + if (mMouseCursors) mMouseCursors->decRef(); - } delete mGuiFont; delete speechFont; delete viewport; - delete mTop; + delete getTop(); delete guiInput; } -void -Gui::draw() +void Gui::logic() +{ + // Fade out mouse cursor after extended inactivity + if (mMouseInactivityTimer < 100 * 15) { + ++mMouseInactivityTimer; + mMouseCursorAlpha = std::min(1.0f, mMouseCursorAlpha + 0.05f); + } else { + mMouseCursorAlpha = std::max(0.0f, mMouseCursorAlpha - 0.005f); + } + + gcn::Gui::logic(); +} + +void Gui::draw() { - mGraphics->pushClipArea(mTop->getDimension()); - mTop->draw(mGraphics); + mGraphics->pushClipArea(getTop()->getDimension()); + getTop()->draw(mGraphics); int mouseX, mouseY; Uint8 button = SDL_GetMouseState(&mouseX, &mouseY); - if ((SDL_GetAppState() & SDL_APPMOUSEFOCUS || button & SDL_BUTTON(1)) && - mCustomCursor) + if ((SDL_GetAppState() & SDL_APPMOUSEFOCUS || button & SDL_BUTTON(1)) + && mCustomCursor + && mMouseCursorAlpha > 0.0f) { + Image *mouseCursor = mMouseCursors->get(mCursorType); + mouseCursor->setAlpha(mMouseCursorAlpha); + static_cast(mGraphics)->drawImage( - mMouseCursors->get(mCursorType), + mouseCursor, mouseX - 15, mouseY - 17); } @@ -207,8 +225,7 @@ Gui::draw() mGraphics->popClipArea(); } -void -Gui::setUseCustomCursor(bool customCursor) +void Gui::setUseCustomCursor(bool customCursor) { if (customCursor != mCustomCursor) { @@ -241,3 +258,9 @@ Gui::setUseCustomCursor(bool customCursor) } } } + +void Gui::handleMouseMoved(const gcn::MouseInput &mouseInput) +{ + gcn::Gui::handleMouseMoved(mouseInput); + mMouseInactivityTimer = 0; +} diff --git a/src/gui/gui.h b/src/gui/gui.h index f31b98c3..15d5d99c 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -57,6 +57,12 @@ class Gui : public gcn::Gui */ ~Gui(); + /** + * Performs logic of the GUI. Overridden to track mouse pointer + * activity. + */ + void logic(); + /** * Draws the whole Gui by calling draw functions down in the * Gui hierarchy. It also draws the mouse pointer. @@ -94,11 +100,16 @@ class Gui : public gcn::Gui CURSOR_TOTAL }; + protected: + void handleMouseMoved(const gcn::MouseInput &mouseInput); + private: GuiConfigListener *mConfigListener; gcn::Font *mGuiFont; /**< The global GUI font */ bool mCustomCursor; /**< Show custom cursor */ ImageSet *mMouseCursors; /**< Mouse cursor images */ + float mMouseCursorAlpha; + int mMouseInactivityTimer; int mCursorType; }; -- cgit v1.2.3-60-g2f50 From 369e540d6cb78874c4951b66b1668468168f496b Mon Sep 17 00:00:00 2001 From: Fate Date: Fri, 5 Dec 2008 23:35:35 -0700 Subject: added /w shortcut for whispering --- src/gui/chat.cpp | 64 +++++++++++++++++++++++++++++++------------------------- src/gui/chat.h | 29 ++++++++++++++----------- 2 files changed, 52 insertions(+), 41 deletions(-) diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp index 71d36e97..5817adbd 100644 --- a/src/gui/chat.cpp +++ b/src/gui/chat.cpp @@ -246,6 +246,38 @@ ChatWindow::isInputFocused() return mChatInput->isFocused(); } +void +ChatWindow::whisper(const std::string &nick, std::string msg, int prefixlen) +{ + std::string recvnick = ""; + msg.erase(0, prefixlen + 1); + + if (msg.substr(0,1) == "\"") + { + const std::string::size_type pos = msg.find('"', 1); + if (pos != std::string::npos) { + recvnick = msg.substr(1, pos - 1); + msg.erase(0, pos + 2); + } + } + else + { + const std::string::size_type pos = msg.find(" "); + if (pos != std::string::npos) { + recvnick = msg.substr(0, pos); + msg.erase(0, pos + 1); + } + } + + MessageOut outMsg(mNetwork); + outMsg.writeInt16(CMSG_CHAT_WHISPER); + outMsg.writeInt16(msg.length() + 28); + outMsg.writeString(recvnick, 24); + outMsg.writeString(msg, msg.length()); + + chatLog("Whispering to " + recvnick + " : " + msg, BY_PLAYER); +} + void ChatWindow::chatSend(const std::string &nick, std::string msg) { @@ -307,35 +339,9 @@ ChatWindow::chatSend(const std::string &nick, std::string msg) mTextOutput->clearRows(); } else if (msg.substr(0, IS_WHISPER_LENGTH) == IS_WHISPER) - { - std::string recvnick = ""; - msg.erase(0, IS_WHISPER_LENGTH + 1); - - if (msg.substr(0,1) == "\"") - { - const std::string::size_type pos = msg.find('"', 1); - if (pos != std::string::npos) { - recvnick = msg.substr(1, pos - 1); - msg.erase(0, pos + 2); - } - } - else - { - const std::string::size_type pos = msg.find(" "); - if (pos != std::string::npos) { - recvnick = msg.substr(0, pos); - msg.erase(0, pos + 1); - } - } - - MessageOut outMsg(mNetwork); - outMsg.writeInt16(CMSG_CHAT_WHISPER); - outMsg.writeInt16(msg.length() + 28); - outMsg.writeString(recvnick, 24); - outMsg.writeString(msg, msg.length()); - - chatLog("Whispering to " + recvnick + " : " + msg, BY_PLAYER); - } + whisper(nick, msg, IS_WHISPER_LENGTH + 1); + else if (msg.substr(0, IS_SHORT_WHISPER_LENGTH) == IS_SHORT_WHISPER) + whisper(nick, msg, IS_SHORT_WHISPER_LENGTH + 1); else { chatLog("Unknown command", BY_SERVER); diff --git a/src/gui/chat.h b/src/gui/chat.h index 6e412bf6..76a8146c 100644 --- a/src/gui/chat.h +++ b/src/gui/chat.h @@ -46,18 +46,20 @@ class ScrollArea; #define BY_LOGGER 6 -#define IS_ANNOUNCE "/announce " -#define IS_ANNOUNCE_LENGTH 10 -#define IS_HELP "/help" -#define IS_HELP_LENGTH 5 -#define IS_WHERE "/where" -#define IS_WHERE_LENGTH 6 -#define IS_WHO "/who" -#define IS_WHO_LENGTH 4 -#define IS_CLEAR "/clear" -#define IS_CLEAR_LENGTH 6 -#define IS_WHISPER "/whisper" -#define IS_WHISPER_LENGTH 8 +#define IS_ANNOUNCE "/announce " +#define IS_ANNOUNCE_LENGTH 10 +#define IS_HELP "/help" +#define IS_HELP_LENGTH 5 +#define IS_WHERE "/where" +#define IS_WHERE_LENGTH 6 +#define IS_WHO "/who" +#define IS_WHO_LENGTH 4 +#define IS_CLEAR "/clear" +#define IS_CLEAR_LENGTH 6 +#define IS_WHISPER "/whisper" +#define IS_WHISPER_LENGTH 8 +#define IS_SHORT_WHISPER "/w" +#define IS_SHORT_WHISPER_LENGTH 2 /** * gets in between usernick and message text depending on @@ -219,6 +221,9 @@ class ChatWindow : public Window, public gcn::ActionListener, Network *mNetwork; bool mTmpVisible; + void + whisper(const std::string &nick, std::string msg, int prefixlen); + /** One item in the chat log */ struct CHATLOG { -- cgit v1.2.3-60-g2f50 From bb7c5ce187c0d6c555fbc390859b054e6c8dfcd2 Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Sat, 6 Dec 2008 15:16:42 +0000 Subject: Fix whispering --- src/gui/chat.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp index 5817adbd..66f6600f 100644 --- a/src/gui/chat.cpp +++ b/src/gui/chat.cpp @@ -339,9 +339,9 @@ ChatWindow::chatSend(const std::string &nick, std::string msg) mTextOutput->clearRows(); } else if (msg.substr(0, IS_WHISPER_LENGTH) == IS_WHISPER) - whisper(nick, msg, IS_WHISPER_LENGTH + 1); + whisper(nick, msg, IS_WHISPER_LENGTH); else if (msg.substr(0, IS_SHORT_WHISPER_LENGTH) == IS_SHORT_WHISPER) - whisper(nick, msg, IS_SHORT_WHISPER_LENGTH + 1); + whisper(nick, msg, IS_SHORT_WHISPER_LENGTH); else { chatLog("Unknown command", BY_SERVER); -- cgit v1.2.3-60-g2f50 From 704f58c9033599c871c176df68ffe7ac3bc8c969 Mon Sep 17 00:00:00 2001 From: Fate Date: Sat, 6 Dec 2008 12:20:16 -0700 Subject: Added particle containers and refactored beings to use them (to clean up responsibilities a little) --- src/Makefile.am | 2 + src/being.cpp | 34 ++-------- src/being.h | 12 +++- src/particlecontainer.cpp | 158 ++++++++++++++++++++++++++++++++++++++++++++++ src/particlecontainer.h | 106 +++++++++++++++++++++++++++++++ 5 files changed, 281 insertions(+), 31 deletions(-) create mode 100644 src/particlecontainer.cpp create mode 100644 src/particlecontainer.h diff --git a/src/Makefile.am b/src/Makefile.am index 3387690a..e9d69b5e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -279,6 +279,8 @@ tmw_SOURCES = gui/widgets/resizegrip.cpp \ particleemitter.cpp \ particleemitter.h \ particleemitterprop.h \ + particlecontainer.cpp \ + particlecontainer.h \ player.cpp \ player.h \ player_relations.cpp \ diff --git a/src/being.cpp b/src/being.cpp index ef257f43..7c6d91e7 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -74,7 +74,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); @@ -95,13 +97,6 @@ Being::~Being() std::for_each(mSprites.begin(), mSprites.end(), make_dtor(mSprites)); clearPath(); - for ( std::list::iterator i = mChildParticleEffects.begin(); - i != mChildParticleEffects.end(); - i++) - { - (*i)->kill(); - } - setMap(NULL); instances--; @@ -233,12 +228,7 @@ 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 @@ -413,21 +403,7 @@ Being::logic() } //Update particle effects - for ( std::list::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++; - } - } + mChildParticleEffects.setPositions((float)mPx + 16.0f, (float)mPy + 32.0f); } void diff --git a/src/being.h b/src/being.h index 0dbc41db..568d51c7 100644 --- a/src/being.h +++ b/src/being.h @@ -26,13 +26,15 @@ #include #include #include -#include +#include #include "sprite.h" #include "map.h" #include "animatedsprite.h" +#include "particlecontainer.h" #define FIRST_IGNORE_EMOTE 14 +#define STATUS_EFFECTS 32 class AnimatedSprite; class Equipment; @@ -405,6 +407,8 @@ class Being : public Sprite std::string mName; /**< Name of character */ SpriteIterator mSpriteIterator; + typedef std::bitset StatusEffects; + /** Engine-related infos about weapon. */ const ItemInfo* mEquippedWeapon; @@ -414,11 +418,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 mSprites; std::vector mSpriteIDs; std::vector mSpriteColors; - std::list mChildParticleEffects; + ParticleContainer mStunParticleEffects; + ParticleVector mStatusParticleEffects; + ParticleContainer mChildParticleEffects; private: /** diff --git a/src/particlecontainer.cpp b/src/particlecontainer.cpp new file mode 100644 index 00000000..4df45b26 --- /dev/null +++ b/src/particlecontainer.cpp @@ -0,0 +1,158 @@ +/* + * 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 + +#include "particlecontainer.h" + + +ParticleContainer::ParticleContainer(ParticleContainer *parent, bool delParent) : + mDelParent(delParent), + mNext(parent) +{}; + +ParticleContainer::~ParticleContainer() +{ + clearLocally(); + if (mNext && mDelParent) + delete mNext; +} + +void +ParticleContainer::addLocally(Particle *particle) +{ + if (particle) + { + // The effect may not die without the beings permission or we segfault + particle->disableAutoDelete(); + mElements.push_back(particle); + } +} + +void +ParticleContainer::removeLocally(Particle *particle) +{ + for (std::list::iterator it = mElements.begin(); + it != mElements.end(); it++) + if (*it == particle) { + (*it)->kill(); + mElements.erase(it); + } +} + +void +ParticleContainer::clear() +{ + clearLocally(); + if (mNext) + mNext->clear(); +} + +void +ParticleContainer::clearLocally() +{ + for (std::list::iterator it = mElements.begin(); + it != mElements.end(); it++) + (*it)->kill(); + + mElements.clear(); +} + +void +ParticleContainer::setPositions(float x, float y) +{ + for (std::list::iterator it = mElements.begin(); + it != mElements.end();) + { + (*it)->setPosition(x, y); + if ((*it)->isExtinct()) + { + (*it)->kill(); + it = mElements.erase(it); + } + else + it++; + } +} + + + + +ParticleVector::ParticleVector(ParticleContainer *next, bool delParent) +{ + ParticleContainer::ParticleContainer(next, delParent); +} + +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::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..a6a1b1c8 --- /dev/null +++ b/src/particlecontainer.h @@ -0,0 +1,106 @@ +/* + * 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 +#include + +#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); + ~ParticleContainer(); + + /** + * Takes control of and adds a particle + */ + void addLocally(Particle *); + + /** + * `kills' and removes a particle + */ + void removeLocally(Particle *); + + /** + * 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 */ + std::list mElements; /**< Contained particle effects */ + ParticleContainer *mNext; /**< Contained container, if any */ +}; + + +/** + * Particle container with indexing facilities + */ +class ParticleVector : public ParticleContainer +{ +public: + ParticleVector(ParticleContainer *parent = NULL, bool delParent = true); + + /** + * 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 mIndexedElements; +}; + +#endif -- cgit v1.2.3-60-g2f50 From e149248f3de912b6cef0d4f342d47e4063f26716 Mon Sep 17 00:00:00 2001 From: Lloyd Bryant Date: Sat, 19 Jul 2008 07:43:43 +0000 Subject: Removed unnecessary weight check in itemdb loader (cherry picked from Aethyra commit e3fef730b69e4edc328e6105ea48b9774631563d) --- src/resources/itemdb.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/resources/itemdb.cpp b/src/resources/itemdb.cpp index 5ee40014..e6f2fd1f 100644 --- a/src/resources/itemdb.cpp +++ b/src/resources/itemdb.cpp @@ -125,10 +125,10 @@ void ItemDB::load() CHECK_PARAM(name, ""); CHECK_PARAM(image, ""); - // CHECK_PARAM(description, ""); - // CHECK_PARAM(effect, ""); + CHECK_PARAM(description, ""); + CHECK_PARAM(effect, ""); // CHECK_PARAM(type, 0); - CHECK_PARAM(weight, 0); + // CHECK_PARAM(weight, 0); // CHECK_PARAM(slot, 0); #undef CHECK_PARAM -- cgit v1.2.3-60-g2f50 From c811075b49a56f7c7f4e3597ed8e1dca359e9586 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 6 Dec 2008 21:22:28 +0100 Subject: Updated link to the forums Only a few years overdue? --- NEWS | 1 + data/help/support.txt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 9d9d24e5..56beff06 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,7 @@ - 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 diff --git a/data/help/support.txt b/data/help/support.txt index 014e37b7..dfbd588d 100644 --- a/data/help/support.txt +++ b/data/help/support.txt @@ -7,7 +7,7 @@ can't find a solution to your problem, feel free to check our Bugs/Support section of the forum: -##2 http://themanaworld.org/phpBB2/viewforum.php?f=3 +##2 http://forums.themanaworld.org/viewforum.php?f=3 or come visit us on our IRC channel: -- cgit v1.2.3-60-g2f50 From 3b7d0af6f0c61e1087838c14519e099dbbe47ec2 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 6 Dec 2008 23:44:17 +0100 Subject: Made /where response include position information Change ported from Aethyra. --- src/gui/chat.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp index 66f6600f..1c7629ae 100644 --- a/src/gui/chat.cpp +++ b/src/gui/chat.cpp @@ -327,7 +327,10 @@ ChatWindow::chatSend(const std::string &nick, std::string msg) } else if (msg.substr(0, IS_WHERE_LENGTH) == IS_WHERE) { - chatLog(map_path, BY_SERVER); + // Display the current map, X, and Y + std::ostringstream where; + where << map_path << " " << player_node->mX << "," << player_node->mY; + chatLog(where.str(), BY_SERVER); } else if (msg.substr(0, IS_WHO_LENGTH) == IS_WHO) { -- cgit v1.2.3-60-g2f50 From 84cfc5ac9929d2190d9fb19fa411b72d90bb2185 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sat, 6 Dec 2008 23:48:15 +0100 Subject: Some code formatting --- src/animatedsprite.cpp | 57 +++++++++++--------------------------------------- 1 file changed, 12 insertions(+), 45 deletions(-) diff --git a/src/animatedsprite.cpp b/src/animatedsprite.cpp index 840fb1e8..203a82af 100644 --- a/src/animatedsprite.cpp +++ b/src/animatedsprite.cpp @@ -56,7 +56,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; @@ -67,22 +68,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); @@ -96,20 +93,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; @@ -121,13 +113,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; @@ -137,9 +126,7 @@ AnimatedSprite::updateCurrentAnimation(unsigned int time) mFrameIndex++; if (mFrameIndex == mAnimation->getLength()) - { mFrameIndex = 0; - } mFrame = mAnimation->getFrame(mFrameIndex); @@ -154,30 +141,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); @@ -190,26 +171,12 @@ AnimatedSprite::setDirection(SpriteDirection direction) } } -int -AnimatedSprite::getWidth() const +int AnimatedSprite::getWidth() const { - if (mFrame) - { - return mFrame->image->getWidth(); - } - else { - return 0; - } + return mFrame ? mFrame->image->getWidth() : 0; } -int -AnimatedSprite::getHeight() const +int AnimatedSprite::getHeight() const { - if (mFrame) - { - return mFrame->image->getHeight(); - } - else { - return 0; - } + return mFrame ? mFrame->image->getHeight() : 0; } -- cgit v1.2.3-60-g2f50 From 523eed88816298b1660ecb9e67db80776e4007bb Mon Sep 17 00:00:00 2001 From: Ira Rice Date: Sat, 1 Nov 2008 03:36:47 +0000 Subject: Made NPC dialogues resizeable. (cherry picked from Aethyra commit 81299ca9acc39dec62e1e504781721ad0db0d471) Conflicts: src/gui/inventorywindow.cpp src/gui/npc_text.cpp --- src/gui/npc_text.cpp | 37 +++++++++++++++++++++++++++++++++---- src/gui/npc_text.h | 16 ++++++++++++++++ src/gui/npclistdialog.cpp | 33 ++++++++++++++++++++++++++++++--- src/gui/npclistdialog.h | 15 +++++++++++++++ 4 files changed, 94 insertions(+), 7 deletions(-) diff --git a/src/gui/npc_text.cpp b/src/gui/npc_text.cpp index 3c4beaf3..ad2ccdce 100644 --- a/src/gui/npc_text.cpp +++ b/src/gui/npc_text.cpp @@ -32,10 +32,16 @@ NpcTextDialog::NpcTextDialog(): Window("NPC") { + setResizable(true); + + setMinWidth(200); + setMinHeight(150); + mTextBox = new TextBox; mTextBox->setEditable(false); - gcn::ScrollArea *scrollArea = new ScrollArea(mTextBox); - Button *okButton = new Button("OK", "ok", this); + + scrollArea = new ScrollArea(mTextBox); + okButton = new Button("OK", "ok", this); setContentSize(260, 175); scrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); @@ -55,13 +61,36 @@ NpcTextDialog::NpcTextDialog(): void NpcTextDialog::setText(const std::string &text) { - mTextBox->setTextWrapped(text); + mText = text; + draw(); } void NpcTextDialog::addText(const std::string &text) { - mTextBox->setTextWrapped(mTextBox->getText() + text + "\n"); + mText = mTextBox->getText() + text + "\n"; + draw(); +} + +void NpcTextDialog::widgetResized(const gcn::Event &event) +{ + Window::widgetResized(event); + draw(); +} + +void NpcTextDialog::draw() +{ + const gcn::Rectangle &area = getChildrenArea(); + const int width = area.width; + const int height = area.height; + + mTextBox->setTextWrapped(mText); + + scrollArea->setDimension(gcn::Rectangle( + 5, 5, width - 10, height - 15 - okButton->getHeight())); + okButton->setPosition( + width - 5 - okButton->getWidth(), + height - 5 - okButton->getHeight()); } void diff --git a/src/gui/npc_text.h b/src/gui/npc_text.h index 2c9771d3..939fb8fa 100644 --- a/src/gui/npc_text.h +++ b/src/gui/npc_text.h @@ -44,6 +44,18 @@ class NpcTextDialog : public Window, public gcn::ActionListener */ NpcTextDialog(); + /** + * Called when resizing the window + * + * @param event The calling event + */ + void widgetResized(const gcn::Event &event); + + /** + * Redraws the window + */ + void draw(); + /** * Called when receiving actions from the widgets. */ @@ -68,7 +80,11 @@ class NpcTextDialog : public Window, public gcn::ActionListener addText(const std::string &string); private: + gcn::Button *okButton; + gcn::ScrollArea *scrollArea; TextBox *mTextBox; + + std::string mText; }; #endif diff --git a/src/gui/npclistdialog.cpp b/src/gui/npclistdialog.cpp index 90444f1a..4f3bc893 100644 --- a/src/gui/npclistdialog.cpp +++ b/src/gui/npclistdialog.cpp @@ -32,10 +32,15 @@ NpcListDialog::NpcListDialog(): Window("NPC") { + setResizable(true); + + setMinWidth(200); + setMinHeight(150); + mItemList = new ListBox(this); - ScrollArea *scrollArea = new ScrollArea(mItemList); - Button *okButton = new Button("OK", "ok", this); - Button *cancelButton = new Button("Cancel", "cancel", this); + scrollArea = new ScrollArea(mItemList); + okButton = new Button("OK", "ok", this); + cancelButton = new Button("Cancel", "cancel", this); setContentSize(260, 175); scrollArea->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_NEVER); @@ -88,6 +93,28 @@ NpcListDialog::reset() mItems.clear(); } +void NpcListDialog::widgetResized(const gcn::Event &event) +{ + Window::widgetResized(event); + draw(); +} + +void NpcListDialog::draw() +{ + const gcn::Rectangle &area = getChildrenArea(); + const int width = area.width; + const int height = area.height; + + scrollArea->setDimension(gcn::Rectangle( + 5, 5, width - 10, height - 15 - okButton->getHeight())); + cancelButton->setPosition( + width - 5 - cancelButton->getWidth(), + height - 5 - cancelButton->getHeight()); + okButton->setPosition( + cancelButton->getX() - 5 - okButton->getWidth(), + cancelButton->getY()); +} + void NpcListDialog::action(const gcn::ActionEvent &event) { diff --git a/src/gui/npclistdialog.h b/src/gui/npclistdialog.h index 0e6760f1..0c9ca495 100644 --- a/src/gui/npclistdialog.h +++ b/src/gui/npclistdialog.h @@ -48,6 +48,18 @@ class NpcListDialog : public Window, public gcn::ActionListener, */ NpcListDialog(); + /** + * Called when resizing the window + * + * @param event The calling event + */ + void widgetResized(const gcn::Event &event); + + /** + * Redraws the window + */ + void draw(); + /** * Called when receiving actions from the widgets. */ @@ -82,6 +94,9 @@ class NpcListDialog : public Window, public gcn::ActionListener, private: gcn::ListBox *mItemList; + gcn::ScrollArea *scrollArea; + gcn::Button *okButton; + gcn::Button *cancelButton; std::vector mItems; }; -- cgit v1.2.3-60-g2f50 From 43eb6ba950dd8bf978e539c7c7460ef5096438de Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sun, 7 Dec 2008 00:23:59 +0100 Subject: Fixed wrapping in some cases, removed draw method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'draw' method was confusingly named, and was actually for updating the GUI after a resize. Its functionality has been merged into 'widgetResized'. The wrapping was broken in the case where text was added to the NPC dialog, cause it was added to an already wrapped string, causing the wrapping to become permanent. Sorry for all the reformatting. Signed-off-by: Bjørn Lindeijer --- src/gui/npc_text.cpp | 23 ++++++++--------------- src/gui/npc_text.h | 16 ++++------------ src/gui/npclistdialog.cpp | 22 ++++++---------------- src/gui/npclistdialog.h | 22 ++++++---------------- 4 files changed, 24 insertions(+), 59 deletions(-) diff --git a/src/gui/npc_text.cpp b/src/gui/npc_text.cpp index ad2ccdce..34c9cce1 100644 --- a/src/gui/npc_text.cpp +++ b/src/gui/npc_text.cpp @@ -58,43 +58,36 @@ NpcTextDialog::NpcTextDialog(): setLocationRelativeTo(getParent()); } -void -NpcTextDialog::setText(const std::string &text) +void NpcTextDialog::setText(const std::string &text) { mText = text; - draw(); + mTextBox->setTextWrapped(mText); } -void -NpcTextDialog::addText(const std::string &text) +void NpcTextDialog::addText(const std::string &text) { - mText = mTextBox->getText() + text + "\n"; - draw(); + setText(mText + text + "\n"); } void NpcTextDialog::widgetResized(const gcn::Event &event) { Window::widgetResized(event); - draw(); -} -void NpcTextDialog::draw() -{ const gcn::Rectangle &area = getChildrenArea(); const int width = area.width; const int height = area.height; - mTextBox->setTextWrapped(mText); - scrollArea->setDimension(gcn::Rectangle( 5, 5, width - 10, height - 15 - okButton->getHeight())); okButton->setPosition( width - 5 - okButton->getWidth(), height - 5 - okButton->getHeight()); + + // Set the text again so that it gets wrapped according to the new size + mTextBox->setTextWrapped(mText); } -void -NpcTextDialog::action(const gcn::ActionEvent &event) +void NpcTextDialog::action(const gcn::ActionEvent &event) { if (event.getId() == "ok") { diff --git a/src/gui/npc_text.h b/src/gui/npc_text.h index 939fb8fa..76161f88 100644 --- a/src/gui/npc_text.h +++ b/src/gui/npc_text.h @@ -51,24 +51,17 @@ class NpcTextDialog : public Window, public gcn::ActionListener */ void widgetResized(const gcn::Event &event); - /** - * Redraws the window - */ - void draw(); - /** * Called when receiving actions from the widgets. */ - void - action(const gcn::ActionEvent &event); + void action(const gcn::ActionEvent &event); /** * Sets the text shows in the dialog. * * @param string The new text. */ - void - setText(const std::string &string); + void setText(const std::string &string); /** * Adds the text to the text shows in the dialog. Also adds a newline @@ -76,8 +69,7 @@ class NpcTextDialog : public Window, public gcn::ActionListener * * @param string The text to add. */ - void - addText(const std::string &string); + void addText(const std::string &string); private: gcn::Button *okButton; @@ -87,4 +79,4 @@ class NpcTextDialog : public Window, public gcn::ActionListener std::string mText; }; -#endif +#endif // _TMW_NPC_TEXT_H diff --git a/src/gui/npclistdialog.cpp b/src/gui/npclistdialog.cpp index 4f3bc893..cdd38312 100644 --- a/src/gui/npclistdialog.cpp +++ b/src/gui/npclistdialog.cpp @@ -64,31 +64,26 @@ NpcListDialog::NpcListDialog(): setLocationRelativeTo(getParent()); } -int -NpcListDialog::getNumberOfElements() +int NpcListDialog::getNumberOfElements() { return mItems.size(); } -std::string -NpcListDialog::getElementAt(int i) +std::string NpcListDialog::getElementAt(int i) { return mItems[i]; } -void -NpcListDialog::parseItems(const std::string &itemString) +void NpcListDialog::parseItems(const std::string &itemString) { std::istringstream iss(itemString); std::string tmp; - while(getline(iss, tmp, ':')) { + while (getline(iss, tmp, ':')) mItems.push_back(tmp); - } } -void -NpcListDialog::reset() +void NpcListDialog::reset() { mItems.clear(); } @@ -96,11 +91,7 @@ NpcListDialog::reset() void NpcListDialog::widgetResized(const gcn::Event &event) { Window::widgetResized(event); - draw(); -} -void NpcListDialog::draw() -{ const gcn::Rectangle &area = getChildrenArea(); const int width = area.width; const int height = area.height; @@ -115,8 +106,7 @@ void NpcListDialog::draw() cancelButton->getY()); } -void -NpcListDialog::action(const gcn::ActionEvent &event) +void NpcListDialog::action(const gcn::ActionEvent &event) { int choice = 0; diff --git a/src/gui/npclistdialog.h b/src/gui/npclistdialog.h index 0c9ca495..f548dbba 100644 --- a/src/gui/npclistdialog.h +++ b/src/gui/npclistdialog.h @@ -55,42 +55,32 @@ class NpcListDialog : public Window, public gcn::ActionListener, */ void widgetResized(const gcn::Event &event); - /** - * Redraws the window - */ - void draw(); - /** * Called when receiving actions from the widgets. */ - void - action(const gcn::ActionEvent &event); + void action(const gcn::ActionEvent &event); /** * Returns the number of items in the choices list. */ - int - getNumberOfElements(); + int getNumberOfElements(); /** * Returns the name of item number i of the choices list. */ - std::string - getElementAt(int i); + std::string getElementAt(int i); /** * Fills the options list for an NPC dialog. * * @param itemString A string with the options separated with colons. */ - void - parseItems(const std::string &itemString); + void parseItems(const std::string &itemString); /** * Resets the list by removing all items. */ - void - reset(); + void reset(); private: gcn::ListBox *mItemList; @@ -101,4 +91,4 @@ class NpcListDialog : public Window, public gcn::ActionListener, std::vector mItems; }; -#endif +#endif // _TMW_GUI_NPCLISTDIALOG_H -- cgit v1.2.3-60-g2f50 From ad8b5f6389562a1f68f2821753317ea7c22bf2ea Mon Sep 17 00:00:00 2001 From: Douglas Boffey Date: Fri, 8 Aug 2008 09:05:28 +0000 Subject: Changed the status window so that all the information appears by default (cherry picked from Aethyra commit 0f033c073c7ae630c9359da358128f5f425f01a6) --- src/gui/status.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/status.cpp b/src/gui/status.cpp index b9f28562..1a257ae8 100644 --- a/src/gui/status.cpp +++ b/src/gui/status.cpp @@ -39,7 +39,7 @@ StatusWindow::StatusWindow(LocalPlayer *player): setResizable(true); setCloseButton(true); setDefaultSize((windowContainer->getWidth() - 365) / 2, - (windowContainer->getHeight() - 255) / 2, 365, 255); + (windowContainer->getHeight() - 255) / 2, 365, 275); loadWindowState(); // ---------------------- -- cgit v1.2.3-60-g2f50 From 047f598be826dd57dd1124db914e8367256112be Mon Sep 17 00:00:00 2001 From: Kraant Date: Sun, 10 Aug 2008 10:56:58 +0000 Subject: Set headers for CURL so that proxies won't cache files to fix bug that causes resources2.txt to be old and out of sync with the files in the directory. (cherry picked from Aethyra commit ccacde4192268fbf5250e9bd6894d158f957922c) --- src/gui/updatewindow.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/gui/updatewindow.cpp b/src/gui/updatewindow.cpp index c0344b72..d453e22a 100644 --- a/src/gui/updatewindow.cpp +++ b/src/gui/updatewindow.cpp @@ -310,6 +310,13 @@ int UpdaterWindow::downloadThread(void *ptr) curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1); curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 15); + /*caching breaks things when resources2.txt is cached + *so caching is turned off on the proxy with this header + *change*/ + struct curl_slist *pHeaders=NULL; + pHeaders = curl_slist_append(pHeaders, "pragma: no-cache"); + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, pHeaders); + if ((res = curl_easy_perform(curl)) != 0) { uw->mDownloadStatus = UPDATE_ERROR; @@ -334,6 +341,8 @@ int UpdaterWindow::downloadThread(void *ptr) curl_easy_cleanup(curl); + curl_slist_free_all(pHeaders); + if (!uw->mStoreInMemory) { // Don't check resources2.txt checksum -- cgit v1.2.3-60-g2f50 From cabf8905526b6601813573d049f6afaf364e1cac Mon Sep 17 00:00:00 2001 From: Kraant Date: Sun, 10 Aug 2008 13:00:33 +0000 Subject: Changed proxy fix to only tell the proxy to no-cache for news.txt and resources2.txt. (cherry picked from Aethyra commit 3206b3254a1a9b90bbdbd1a7178e4df043a5ee26) --- src/gui/updatewindow.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/gui/updatewindow.cpp b/src/gui/updatewindow.cpp index d453e22a..2edb1a9a 100644 --- a/src/gui/updatewindow.cpp +++ b/src/gui/updatewindow.cpp @@ -310,12 +310,15 @@ int UpdaterWindow::downloadThread(void *ptr) curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1); curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 15); - /*caching breaks things when resources2.txt is cached - *so caching is turned off on the proxy with this header - *change*/ struct curl_slist *pHeaders=NULL; - pHeaders = curl_slist_append(pHeaders, "pragma: no-cache"); - curl_easy_setopt(curl, CURLOPT_HTTPHEADER, pHeaders); + 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); + } if ((res = curl_easy_perform(curl)) != 0) { @@ -341,7 +344,9 @@ int UpdaterWindow::downloadThread(void *ptr) curl_easy_cleanup(curl); - curl_slist_free_all(pHeaders); + if(uw->mDownloadStatus != UPDATE_RESOURCES){ + curl_slist_free_all(pHeaders); + } if (!uw->mStoreInMemory) { -- cgit v1.2.3-60-g2f50 From 416e28057f5a6073a2ef44f296ed1c8bc1280bf6 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Sun, 7 Dec 2008 00:59:09 +0100 Subject: Some code reformatting and updated NEWS --- NEWS | 2 ++ src/gui/updatewindow.cpp | 22 ++++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/NEWS b/NEWS index 56beff06..52dbf700 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,8 @@ - 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 diff --git a/src/gui/updatewindow.cpp b/src/gui/updatewindow.cpp index 2edb1a9a..7f7d45fc 100644 --- a/src/gui/updatewindow.cpp +++ b/src/gui/updatewindow.cpp @@ -310,14 +310,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) @@ -344,8 +345,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) -- cgit v1.2.3-60-g2f50 From 617fb41e21710856c1451058481e5df3756fb355 Mon Sep 17 00:00:00 2001 From: Fate Date: Sat, 6 Dec 2008 19:50:49 -0700 Subject: Fixes to the /w command --- src/gui/chat.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp index 5817adbd..a96c2eda 100644 --- a/src/gui/chat.cpp +++ b/src/gui/chat.cpp @@ -250,7 +250,7 @@ void ChatWindow::whisper(const std::string &nick, std::string msg, int prefixlen) { std::string recvnick = ""; - msg.erase(0, prefixlen + 1); + msg.erase(0, prefixlen); if (msg.substr(0,1) == "\"") { @@ -496,6 +496,7 @@ void ChatWindow::help(const std::string &msg1, const std::string &msg2) chatLog("/where: Display map name", BY_SERVER); chatLog("/whisper : Sends a private " " to ", BY_SERVER); + chatLog("/w : Short form for /whisper", BY_SERVER); chatLog("/who: Display number of online users", BY_SERVER); chatLog("For more information, type /help ", BY_SERVER); return; @@ -531,9 +532,10 @@ void ChatWindow::help(const std::string &msg1, const std::string &msg2) BY_SERVER); return; } - if (msg1 == "whisper") + if (msg1 == "whisper" || msg1 == "w") { chatLog("Command: /whisper ", BY_SERVER); + chatLog("Command: /w ", BY_SERVER); chatLog("This command sends the message to has spaces in it, enclose it in " "double quotes (\").", BY_SERVER); -- cgit v1.2.3-60-g2f50 From 7b11d719316e84d97e95a32de2a74803aa18e5da Mon Sep 17 00:00:00 2001 From: Fate Date: Sat, 6 Dec 2008 19:55:22 -0700 Subject: Minor punctuation fix, merged earlier /whisper fix/help update with separate fix for same issue --- src/gui/chat.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp index b9e11dad..1e22772b 100644 --- a/src/gui/chat.cpp +++ b/src/gui/chat.cpp @@ -250,7 +250,7 @@ void ChatWindow::whisper(const std::string &nick, std::string msg, int prefixlen) { std::string recvnick = ""; - msg.erase(0, prefixlen); + msg.erase(0, prefixlen + 1); if (msg.substr(0,1) == "\"") { @@ -539,7 +539,7 @@ void ChatWindow::help(const std::string &msg1, const std::string &msg2) { chatLog("Command: /whisper ", BY_SERVER); chatLog("Command: /w ", BY_SERVER); - chatLog("This command sends the message to to .", BY_SERVER); chatLog("If the has spaces in it, enclose it in " "double quotes (\").", BY_SERVER); return; -- cgit v1.2.3-60-g2f50 From a7c21e6f8add37af7412449742ec55c8daa8571a Mon Sep 17 00:00:00 2001 From: Fate Date: Sat, 6 Dec 2008 21:00:46 -0700 Subject: Defrobnicated ParticleContainer inheritance hierarchy --- src/being.h | 4 ++-- src/particlecontainer.cpp | 51 ++++++++++++++++++++++++++++++++--------------- src/particlecontainer.h | 45 +++++++++++++++++++++++++++++------------ 3 files changed, 69 insertions(+), 31 deletions(-) diff --git a/src/being.h b/src/being.h index 568d51c7..15e1e6f9 100644 --- a/src/being.h +++ b/src/being.h @@ -424,9 +424,9 @@ class Being : public Sprite std::vector mSprites; std::vector mSpriteIDs; std::vector mSpriteColors; - ParticleContainer mStunParticleEffects; + ParticleList mStunParticleEffects; ParticleVector mStatusParticleEffects; - ParticleContainer mChildParticleEffects; + ParticleList mChildParticleEffects; private: /** diff --git a/src/particlecontainer.cpp b/src/particlecontainer.cpp index 4df45b26..12ef5733 100644 --- a/src/particlecontainer.cpp +++ b/src/particlecontainer.cpp @@ -37,7 +37,30 @@ ParticleContainer::~ParticleContainer() } void -ParticleContainer::addLocally(Particle *particle) +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) { @@ -48,7 +71,7 @@ ParticleContainer::addLocally(Particle *particle) } void -ParticleContainer::removeLocally(Particle *particle) +ParticleList::removeLocally(Particle *particle) { for (std::list::iterator it = mElements.begin(); it != mElements.end(); it++) @@ -59,15 +82,7 @@ ParticleContainer::removeLocally(Particle *particle) } void -ParticleContainer::clear() -{ - clearLocally(); - if (mNext) - mNext->clear(); -} - -void -ParticleContainer::clearLocally() +ParticleList::clearLocally() { for (std::list::iterator it = mElements.begin(); it != mElements.end(); it++) @@ -77,8 +92,10 @@ ParticleContainer::clearLocally() } void -ParticleContainer::setPositions(float x, float y) +ParticleList::setPositions(float x, float y) { + ParticleContainer::setPositions(x, y); + for (std::list::iterator it = mElements.begin(); it != mElements.end();) { @@ -96,10 +113,12 @@ ParticleContainer::setPositions(float x, float y) -ParticleVector::ParticleVector(ParticleContainer *next, bool delParent) -{ - ParticleContainer::ParticleContainer(next, delParent); -} +// -- particle vector ---------------------------------------- + +ParticleVector::ParticleVector(ParticleContainer *parent, bool delParent) : + ParticleContainer(parent, delParent) {}; + +ParticleVector::~ParticleVector() {}; void ParticleVector::setLocally(int index, Particle *particle) diff --git a/src/particlecontainer.h b/src/particlecontainer.h index a6a1b1c8..cf002fbc 100644 --- a/src/particlecontainer.h +++ b/src/particlecontainer.h @@ -42,38 +42,56 @@ public: * * delParent means that the destructor should also free the parent. */ - ParticleContainer(ParticleContainer *parent = NULL, bool delParent = true); - ~ParticleContainer(); + ParticleContainer(ParticleContainer *parent = NULL, bool delParent = true); + virtual ~ParticleContainer(); /** - * Takes control of and adds a particle + * Kills and removes all particle effects */ - void addLocally(Particle *); + void clear(); /** - * `kills' and removes a particle + * Kills and removes all particle effects (only in this container) */ - void removeLocally(Particle *); + virtual void clearLocally() {}; /** - * Kills and removes all particle effects + * Sets the positions of all elements */ - void clear(); + 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(); /** - * Kills and removes all particle effects (only in this container) + * Takes control of and adds a particle */ - virtual void clearLocally(); + void addLocally(Particle *); /** - * Sets the positions of all elements + * `kills' and removes a particle */ + void removeLocally(Particle *); + + virtual void clearLocally(); + virtual void setPositions(float x, float y); protected: - bool mDelParent; /**< Delete mNext in destructor */ std::list mElements; /**< Contained particle effects */ - ParticleContainer *mNext; /**< Contained container, if any */ }; @@ -84,6 +102,7 @@ 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 -- cgit v1.2.3-60-g2f50