diff options
author | Thorbjørn Lindeijer <thorbjorn@lindeijer.nl> | 2013-04-27 16:43:59 +0200 |
---|---|---|
committer | Thorbjørn Lindeijer <thorbjorn@lindeijer.nl> | 2013-04-27 19:23:03 +0200 |
commit | 1a99d37d059df95f6a144c4f9e9fa85dacefd185 (patch) | |
tree | 0d8042ccc063567989c0e944d8a086b41c79210f /src | |
parent | acf585aa5354367b771c7e3b136671d5bc938c79 (diff) | |
download | mana-client-1a99d37d059df95f6a144c4f9e9fa85dacefd185.tar.gz mana-client-1a99d37d059df95f6a144c4f9e9fa85dacefd185.tar.bz2 mana-client-1a99d37d059df95f6a144c4f9e9fa85dacefd185.tar.xz mana-client-1a99d37d059df95f6a144c4f9e9fa85dacefd185.zip |
Always read the attributes.xml file
This way it can also be used when connecting to a tmwAthena server for
customizing the min/max of attributes and the amount of starting points.
Mantis-issue: 501
Reviewed-by: Ablu
Diffstat (limited to 'src')
-rw-r--r-- | src/CMakeLists.txt | 4 | ||||
-rw-r--r-- | src/net/manaserv/charhandler.cpp | 4 | ||||
-rw-r--r-- | src/net/manaserv/generalhandler.cpp | 5 | ||||
-rw-r--r-- | src/net/manaserv/playerhandler.cpp | 6 | ||||
-rw-r--r-- | src/net/tmwa/charserverhandler.cpp | 6 | ||||
-rw-r--r-- | src/net/tmwa/generalhandler.cpp | 19 | ||||
-rw-r--r-- | src/resources/attributes.cpp (renamed from src/net/manaserv/attributes.cpp) | 19 | ||||
-rw-r--r-- | src/resources/attributes.h (renamed from src/net/manaserv/attributes.h) | 10 |
8 files changed, 43 insertions, 30 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f7483cfa..32ac5426 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -365,6 +365,8 @@ SET(SRCS resources/ambientlayer.h resources/animation.cpp resources/animation.h + resources/attributes.cpp + resources/attributes.h resources/beinginfo.cpp resources/beinginfo.h resources/dye.cpp @@ -593,8 +595,6 @@ SET(SRCS_TMWA SET(SRCS_MANA net/manaserv/adminhandler.cpp net/manaserv/adminhandler.h - net/manaserv/attributes.cpp - net/manaserv/attributes.h net/manaserv/beinghandler.cpp net/manaserv/beinghandler.h net/manaserv/buysellhandler.cpp diff --git a/src/net/manaserv/charhandler.cpp b/src/net/manaserv/charhandler.cpp index e809bfac..ece8e108 100644 --- a/src/net/manaserv/charhandler.cpp +++ b/src/net/manaserv/charhandler.cpp @@ -1,7 +1,7 @@ /* * The Mana Client * Copyright (C) 2004-2009 The Mana World Development Team - * Copyright (C) 2009-2012 The Mana Developers + * Copyright (C) 2009-2013 The Mana Developers * * This file is part of The Mana Client. * @@ -39,8 +39,8 @@ #include "net/manaserv/messagein.h" #include "net/manaserv/messageout.h" #include "net/manaserv/manaserv_protocol.h" -#include "net/manaserv/attributes.h" +#include "resources/attributes.h" #include "resources/hairdb.h" #include "utils/dtor.h" diff --git a/src/net/manaserv/generalhandler.cpp b/src/net/manaserv/generalhandler.cpp index d1fa41fe..c6b2af18 100644 --- a/src/net/manaserv/generalhandler.cpp +++ b/src/net/manaserv/generalhandler.cpp @@ -1,7 +1,7 @@ /* * The Mana Client * Copyright (C) 2009 The Mana World Development Team - * Copyright (C) 2009-2012 The Mana Developers + * Copyright (C) 2009-2013 The Mana Developers * * This file is part of The Mana Client. * @@ -47,9 +47,10 @@ #include "net/manaserv/partyhandler.h" #include "net/manaserv/playerhandler.h" #include "net/manaserv/specialhandler.h" -#include "net/manaserv/attributes.h" #include "net/manaserv/tradehandler.h" +#include "resources/attributes.h" + #include "utils/gettext.h" #include <list> diff --git a/src/net/manaserv/playerhandler.cpp b/src/net/manaserv/playerhandler.cpp index 484e551a..c1f78f67 100644 --- a/src/net/manaserv/playerhandler.cpp +++ b/src/net/manaserv/playerhandler.cpp @@ -1,7 +1,7 @@ /* * The Mana Client * Copyright (C) 2004-2009 The Mana World Development Team - * Copyright (C) 2009-2012 The Mana Developers + * Copyright (C) 2009-2013 The Mana Developers * * This file is part of The Mana Client. * @@ -20,7 +20,6 @@ */ #include "net/manaserv/playerhandler.h" -#include "net/manaserv/beinghandler.h" #include "client.h" #include "effectmanager.h" @@ -43,7 +42,8 @@ #include "net/manaserv/messagein.h" #include "net/manaserv/messageout.h" #include "net/manaserv/manaserv_protocol.h" -#include "net/manaserv/attributes.h" + +#include "resources/attributes.h" /** * Max. distance in tiles we are willing to scroll after a teleport; diff --git a/src/net/tmwa/charserverhandler.cpp b/src/net/tmwa/charserverhandler.cpp index ce193821..cc242951 100644 --- a/src/net/tmwa/charserverhandler.cpp +++ b/src/net/tmwa/charserverhandler.cpp @@ -38,6 +38,7 @@ #include "net/tmwa/network.h" #include "net/tmwa/protocol.h" +#include "resources/attributes.h" #include "resources/hairdb.h" #include "utils/dtor.h" @@ -278,7 +279,10 @@ void CharServerHandler::setCharCreateDialog(CharCreateDialog *window) const Token &token = static_cast<LoginHandler*>(Net::getLoginHandler())->getToken(); - mCharCreateDialog->setAttributes(attributes, 30, 1, 9); + mCharCreateDialog->setAttributes(attributes, + Attributes::getCreationPoints(), + Attributes::getAttributeMinimum(), + Attributes::getAttributeMaximum()); mCharCreateDialog->setFixedGender(true, token.sex); } diff --git a/src/net/tmwa/generalhandler.cpp b/src/net/tmwa/generalhandler.cpp index 6c2bcddb..0ce16691 100644 --- a/src/net/tmwa/generalhandler.cpp +++ b/src/net/tmwa/generalhandler.cpp @@ -1,7 +1,7 @@ /* * The Mana Client * Copyright (C) 2009 The Mana World Development Team - * Copyright (C) 2009-2012 The Mana Developers + * Copyright (C) 2009-2013 The Mana Developers * * This file is part of The Mana Client. * @@ -57,11 +57,11 @@ #include "net/tmwa/gui/guildtab.h" #include "net/tmwa/gui/partytab.h" +#include "resources/attributes.h" #include "resources/itemdb.h" #include "utils/gettext.h" -#include <assert.h> #include <list> extern Net::GeneralHandler *generalHandler; @@ -108,6 +108,7 @@ GeneralHandler::GeneralHandler(): setStatsList(stats); + listen(Event::ClientChannel); listen(Event::GameChannel); } @@ -185,12 +186,17 @@ void GeneralHandler::reload() static_cast<LoginHandler*>(mLoginHandler.get())->clearWorlds(); static_cast<CharServerHandler*>(mCharHandler.get())->setCharCreateDialog(0); static_cast<CharServerHandler*>(mCharHandler.get())->setCharSelectDialog(0); + + Attributes::unload(); + Attributes::load(); } void GeneralHandler::unload() { if (mNetwork) mNetwork->clearHandlers(); + + Attributes::unload(); } void GeneralHandler::flushNetwork() @@ -220,7 +226,14 @@ void GeneralHandler::clearHandlers() void GeneralHandler::event(Event::Channel channel, const Event &event) { - if (channel == Event::GameChannel) + if (channel == Event::ClientChannel) + { + if (event.getType() == Event::LoadingDatabases) + { + Attributes::load(); + } + } + else if (channel == Event::GameChannel) { if (event.getType() == Event::GuiWindowsLoaded) { diff --git a/src/net/manaserv/attributes.cpp b/src/resources/attributes.cpp index e754a6a9..c4c67fba 100644 --- a/src/net/manaserv/attributes.cpp +++ b/src/resources/attributes.cpp @@ -1,6 +1,6 @@ /* * The Mana Client - * Copyright (C) 2010-2012 The Mana Developers + * Copyright (C) 2010-2013 The Mana Developers * * This file is part of The Mana Client. * @@ -18,7 +18,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "net/manaserv/attributes.h" +#include "resources/attributes.h" #include "log.h" #include "playerinfo.h" @@ -35,11 +35,10 @@ #include <map> #define DEFAULT_ATTRIBUTESDB_FILE "attributes.xml" -#define DEFAULT_POINTS 60 +#define DEFAULT_POINTS 30 #define DEFAULT_MIN_PTS 1 -#define DEFAULT_MAX_PTS 20 +#define DEFAULT_MAX_PTS 9 -namespace ManaServ { namespace Attributes { typedef struct @@ -67,9 +66,9 @@ namespace Attributes { static std::vector<std::string> attributeLabels; /** Characters creation points. */ - static unsigned int creationPoints = 0; - static unsigned int attributeMinimum = 0; - static unsigned int attributeMaximum = 0; + static unsigned int creationPoints = DEFAULT_POINTS; + static unsigned int attributeMinimum = DEFAULT_MIN_PTS; + static unsigned int attributeMaximum = DEFAULT_MAX_PTS; unsigned int getCreationPoints() { @@ -381,8 +380,7 @@ namespace Attributes { TagMap::const_iterator it, it_end; for (it = tags.begin(), it_end = tags.end(); it != it_end; ++it) - dbStats.push_back(ItemStat(it->first, - it->second)); + dbStats.push_back(ItemStat(it->first, it->second)); setStatsList(dbStats); } @@ -405,4 +403,3 @@ namespace Attributes { } } // namespace Attributes -} // namespace ManaServ diff --git a/src/net/manaserv/attributes.h b/src/resources/attributes.h index e004d16c..7124ba94 100644 --- a/src/net/manaserv/attributes.h +++ b/src/resources/attributes.h @@ -1,6 +1,6 @@ /* * The Mana Client - * Copyright (C) 2010-2012 The Mana Developers + * Copyright (C) 2010-2013 The Mana Developers * * This file is part of The Mana Client. * @@ -18,13 +18,12 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#ifndef NET_MANASERV_ATTRIBUTES_H -#define NET_MANASERV_ATTRIBUTES_H +#ifndef RESOURCES_ATTRIBUTES_H +#define RESOURCES_ATTRIBUTES_H #include <string> #include <vector> -namespace ManaServ { namespace Attributes { void load(); @@ -65,6 +64,5 @@ namespace Attributes { unsigned int getAttributeMaximum(); } // namespace Attributes -} // namespace ManaServ -#endif // NET_MANASERV_ATTRIBUTES_H +#endif // RESOURCES_ATTRIBUTES_H |