From ebcc8eac47b5860c02413c1e8d4c2f3c553ef20e Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 5 Jul 2017 01:53:43 +0300 Subject: Move resource dbs load/unload code into dbmanager. --- src/resources/dbmanager.cpp | 135 ++++++++++++++++++++++++++++++++++++++++++++ src/resources/dbmanager.h | 30 ++++++++++ 2 files changed, 165 insertions(+) create mode 100644 src/resources/dbmanager.cpp create mode 100644 src/resources/dbmanager.h (limited to 'src/resources') diff --git a/src/resources/dbmanager.cpp b/src/resources/dbmanager.cpp new file mode 100644 index 000000000..47a9deeee --- /dev/null +++ b/src/resources/dbmanager.cpp @@ -0,0 +1,135 @@ +/* + * The ManaPlus Client + * Copyright (C) 2017 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program 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. + * + * This program 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 this program. If not, see . + */ + +#include "resources/dbmanager.h" + +#include "being/being.h" + +#include "net/loginhandler.h" +#include "net/net.h" + +#include "resources/db/avatardb.h" +#include "resources/db/badgesdb.h" +#include "resources/db/chardb.h" +#include "resources/db/colordb.h" +#include "resources/db/deaddb.h" +#include "resources/db/elementaldb.h" +#include "resources/db/emotedb.h" +#include "resources/db/homunculusdb.h" +#include "resources/db/horsedb.h" +#include "resources/db/itemdb.h" +#include "resources/db/itemfielddb.h" +#include "resources/db/itemoptiondb.h" +#include "resources/db/languagedb.h" +#include "resources/db/sounddb.h" +#include "resources/db/mapdb.h" +#include "resources/db/mercenarydb.h" +#include "resources/db/moddb.h" +#include "resources/db/monsterdb.h" +#include "resources/db/networkdb.h" +#include "resources/db/npcdb.h" +#include "resources/db/npcdialogdb.h" +#include "resources/db/palettedb.h" +#include "resources/db/petdb.h" +#include "resources/db/skillunitdb.h" +#include "resources/db/statdb.h" +#include "resources/db/statuseffectdb.h" +#include "resources/db/textdb.h" +#include "resources/db/unitsdb.h" +#include "resources/db/weaponsdb.h" + +#include "debug.h" + +void DbManager::loadDb() +{ + CharDB::load(); + StatDb::load(); + DeadDB::load(); + PaletteDB::load(); + ColorDB::load(); + SoundDB::load(); + LanguageDb::load(); + TextDb::load(); + MapDB::load(); + ItemFieldDb::load(); + ItemOptionDb::load(); + ItemDB::load(); + Being::load(); + const ServerTypeT type = Net::getNetworkType(); + if (type == ServerType::EATHENA || + type == ServerType::EVOL2) + { + NetworkDb::load(); + if (loginHandler != nullptr) + loginHandler->updatePacketVersion(); + MercenaryDB::load(); + HomunculusDB::load(); + ElementalDb::load(); + SkillUnitDb::load(); + HorseDB::load(); + } + MonsterDB::load(); + AvatarDB::load(); + BadgesDB::load(); + WeaponsDB::load(); + UnitsDb::loadUnits(); + NPCDB::load(); + NpcDialogDB::load(); + PETDB::load(); + EmoteDB::load(); +// ModDB::load(); + StatusEffectDB::load(); +} + +void DbManager::unloadDb() +{ + CharDB::unload(); + StatDb::unload(); + DeadDB::unload(); + ColorDB::unload(); + SoundDB::unload(); + LanguageDb::unload(); + TextDb::unload(); + EmoteDB::unload(); + ItemDB::unload(); + ItemOptionDb::unload(); + ItemFieldDb::unload(); + const ServerTypeT type = Net::getNetworkType(); + if (type == ServerType::EATHENA || + type == ServerType::EVOL2) + { + MercenaryDB::unload(); + HomunculusDB::unload(); + ElementalDb::unload(); + SkillUnitDb::unload(); + HorseDB::unload(); + NetworkDb::unload(); + } + MonsterDB::unload(); + NPCDB::unload(); + NpcDialogDB::unload(); + AvatarDB::unload(); + BadgesDB::unload(); + WeaponsDB::unload(); + PaletteDB::unload(); + PETDB::unload(); + StatusEffectDB::unload(); + ModDB::unload(); +} diff --git a/src/resources/dbmanager.h b/src/resources/dbmanager.h new file mode 100644 index 000000000..3aceacb0e --- /dev/null +++ b/src/resources/dbmanager.h @@ -0,0 +1,30 @@ +/* + * The ManaPlus Client + * Copyright (C) 2017 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program 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. + * + * This program 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 this program. If not, see . + */ + +#ifndef RESOURCES_DBMANAGER_H +#define RESOURCES_DBMANAGER_H + +namespace DbManager +{ + void loadDb(); + void unloadDb(); +} + +#endif // RESOURCES_DBMANAGER_H -- cgit v1.2.3-60-g2f50