Format name as a feature, do not connect if dont have dat/spr

This commit is contained in:
Henrique Santiago
2012-08-14 20:58:25 -03:00
parent 6fdf23e22f
commit e244e1975d
7 changed files with 32 additions and 16 deletions

View File

@@ -333,6 +333,7 @@ namespace Otc
GameChargeableItems = 25,
GameOfflineTrainingTime = 26,
GamePurseSlot = 27,
GameFormatCreatureName = 28,
// 23-50 unused yet
// 51-100 reserved to be defined in lua
LastGameFeature = 101

View File

@@ -1128,10 +1128,11 @@ void Game::setClientVersion(int version)
if(isOnline())
stdext::throw_exception("Unable to change client version while online");
if(version < 810 || version > 961)
if(version != 0 && (version < 810 || version > 961))
stdext::throw_exception(stdext::format("Protocol version %d not supported", version));
m_features.reset();
enableFeature(Otc::GameFormatCreatureName);
if(version <= 810) {
enableFeature(Otc::GameChargeableItems);
@@ -1203,7 +1204,7 @@ void Game::setFollowingCreature(const CreaturePtr& creature)
std::string Game::formatCreatureName(const std::string& name)
{
std::string formatedName = name;
if(m_isCreatureNameFormatEnabled && name.length() > 0)
if(getFeature(Otc::GameFormatCreatureName) && name.length() > 0)
formatedName[0] = stdext::upchar(formatedName[0]);
return formatedName;
}

View File

@@ -269,8 +269,6 @@ public:
std::vector<uint8> getGMActions() { return m_gmActions; }
std::string formatCreatureName(const std::string &name);
void enableCreatureNameFormat() { m_isCreatureNameFormatEnabled = true; }
void disableCreatureNameFormat() { m_isCreatureNameFormatEnabled = false; }
protected:
void enableBotCall() { m_denyBotCall = false; }
@@ -287,7 +285,6 @@ private:
std::map<int, ContainerPtr> m_containers;
std::map<int, Vip> m_vips;
stdext::boolean<true> m_isCreatureNameFormatEnabled;
bool m_online;
bool m_denyBotCall;
bool m_dead;

View File

@@ -206,8 +206,6 @@ void OTClient::registerLuaFunctions()
g_lua.bindSingletonFunction("g_game", "getFeature", &Game::getFeature, &g_game);
g_lua.bindSingletonFunction("g_game", "setFeature", &Game::setFeature, &g_game);
g_lua.bindSingletonFunction("g_game", "enableFeature", &Game::enableFeature, &g_game);
g_lua.bindSingletonFunction("g_game", "enableCreatureNameFormat", &Game::enableCreatureNameFormat, &g_game);
g_lua.bindSingletonFunction("g_game", "disableCreatureNameFormat", &Game::disableCreatureNameFormat, &g_game);
g_lua.registerSingletonClass("g_shaders");
g_lua.bindSingletonFunction("g_shaders", "createShader", &ShaderManager::createShader, &g_shaders);