move map and items to separate client specific folders

This commit is contained in:
ErikasKontenis
2020-03-03 17:42:19 +02:00
parent a87bea88d7
commit d8c1eed4f0
17 changed files with 77806 additions and 23 deletions

View File

@@ -180,7 +180,7 @@ bool Game::loadMainMap(const std::string& filename)
{
Monster::despawnRange = g_config.getNumber(ConfigManager::DEFAULT_DESPAWNRANGE);
Monster::despawnRadius = g_config.getNumber(ConfigManager::DEFAULT_DESPAWNRADIUS);
return map.loadMap("data/world/" + filename + ".otbm", true);
return map.loadMap("data/world" + std::to_string(getClientVersion()) + "/" + filename + ".otbm", true);
}
void Game::loadMap(const std::string& path)

View File

@@ -20,6 +20,7 @@
#include "otpch.h"
#include "items.h"
#include "game.h"
#include "spells.h"
#include "movement.h"
#include "script.h"
@@ -54,7 +55,7 @@ bool Items::reload()
bool Items::loadItems()
{
ScriptReader script;
if (!script.open("data/items/items.srv")) {
if (!script.open("data/items" + std::to_string(g_game.getClientVersion()) + "/items.srv")) {
return false;
}

View File

@@ -171,6 +171,30 @@ void mainLoader(int, char*[], ServiceManager* services)
return;
}
std::cout << ">> Checking client version... " << std::flush;
int32_t clientVersion = g_config.getNumber(ConfigManager::CLIENT_VERSION);
if (clientVersion == 780) {
g_game.setClientVersion(CLIENT_VERSION_780);
}
else if (clientVersion == 781) {
g_game.setClientVersion(CLIENT_VERSION_781);
}
else if (clientVersion == 790) {
g_game.setClientVersion(CLIENT_VERSION_790);
}
else if (clientVersion == 792) {
g_game.setClientVersion(CLIENT_VERSION_792);
}
else {
std::cout << std::endl;
std::ostringstream ss;
ss << "> ERROR: Unknown client version: " << g_config.getNumber(ConfigManager::CLIENT_VERSION) << ", valid client versions are: 780, 781, 790, 792.";
startupErrorMessage(ss.str());
return;
}
std::cout << clientVersion << std::endl;
std::cout << ">> Establishing database connection..." << std::flush;
Database* db = Database::getInstance();
@@ -245,27 +269,6 @@ void mainLoader(int, char*[], ServiceManager* services)
}
std::cout << asUpperCaseString(worldType) << std::endl;
std::cout << ">> Checking client version... " << std::flush;
int32_t clientVersion = g_config.getNumber(ConfigManager::CLIENT_VERSION);
if (clientVersion == 780) {
g_game.setClientVersion(CLIENT_VERSION_780);
} else if (clientVersion == 781) {
g_game.setClientVersion(CLIENT_VERSION_781);
} else if (clientVersion == 790) {
g_game.setClientVersion(CLIENT_VERSION_790);
} else if (clientVersion == 792) {
g_game.setClientVersion(CLIENT_VERSION_792);
}
else {
std::cout << std::endl;
std::ostringstream ss;
ss << "> ERROR: Unknown client version: " << g_config.getNumber(ConfigManager::CLIENT_VERSION) << ", valid client versions are: 780, 781, 790, 792.";
startupErrorMessage(ss.str());
return;
}
std::cout << clientVersion << std::endl;
std::cout << ">> Loading map" << std::endl;
if (!g_game.loadMainMap(g_config.getString(ConfigManager::MAP_NAME))) {
startupErrorMessage("Failed to load map");