From 7b180e5fa8e3afbc5e0bcc82496c10b63f557f3a Mon Sep 17 00:00:00 2001 From: Zor Date: Sat, 27 Mar 2010 22:11:10 +0300 Subject: [PATCH 1/2] [9631] Fix enum names. Signed-off-by: AlexDereka --- src/game/World.cpp | 20 ++++++++++---------- src/game/World.h | 40 +++++++++++++++++++-------------------- src/game/WorldSocket.cpp | 2 +- src/realmd/AuthSocket.cpp | 4 ++-- src/shared/revision_nr.h | 2 +- 5 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/game/World.cpp b/src/game/World.cpp index 8a9b57e58..e1efb651a 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -1961,7 +1961,7 @@ void World::LoadDBVersion() m_CreatureEventAIVersion = "Unknown creature EventAI."; } -void World::setConfig(eConfigUint32Values index, char const* fieldname, uint32 defvalue) +void World::setConfig(eConfigUInt32Values index, char const* fieldname, uint32 defvalue) { setConfig(index, sConfig.GetIntDefault(fieldname,defvalue)); } @@ -1971,7 +1971,7 @@ void World::setConfig(eConfigInt32Values index, char const* fieldname, int32 def setConfig(index, sConfig.GetIntDefault(fieldname,defvalue)); } -void World::setConfig(eConfigFLoatValues index, char const* fieldname, float defvalue) +void World::setConfig(eConfigFloatValues index, char const* fieldname, float defvalue) { setConfig(index, sConfig.GetFloatDefault(fieldname,defvalue)); } @@ -1981,7 +1981,7 @@ void World::setConfig( eConfigBoolValues index, char const* fieldname, bool defv setConfig(index, sConfig.GetBoolDefault(fieldname,defvalue)); } -void World::setConfigPos(eConfigUint32Values index, char const* fieldname, uint32 defvalue) +void World::setConfigPos(eConfigUInt32Values index, char const* fieldname, uint32 defvalue) { setConfig(index, fieldname, defvalue); if (int32(getConfig(index)) < 0) @@ -1991,7 +1991,7 @@ void World::setConfigPos(eConfigUint32Values index, char const* fieldname, uint3 } } -void World::setConfigPos(eConfigFLoatValues index, char const* fieldname, float defvalue) +void World::setConfigPos(eConfigFloatValues index, char const* fieldname, float defvalue) { setConfig(index, fieldname, defvalue); if (getConfig(index) < 0.0f) @@ -2001,7 +2001,7 @@ void World::setConfigPos(eConfigFLoatValues index, char const* fieldname, float } } -void World::setConfigMin(eConfigUint32Values index, char const* fieldname, uint32 defvalue, uint32 minvalue) +void World::setConfigMin(eConfigUInt32Values index, char const* fieldname, uint32 defvalue, uint32 minvalue) { setConfig(index, fieldname, defvalue); if (getConfig(index) < minvalue) @@ -2021,7 +2021,7 @@ void World::setConfigMin(eConfigInt32Values index, char const* fieldname, int32 } } -void World::setConfigMin(eConfigFLoatValues index, char const* fieldname, float defvalue, float minvalue) +void World::setConfigMin(eConfigFloatValues index, char const* fieldname, float defvalue, float minvalue) { setConfig(index, fieldname, defvalue); if (getConfig(index) < minvalue) @@ -2031,7 +2031,7 @@ void World::setConfigMin(eConfigFLoatValues index, char const* fieldname, float } } -void World::setConfigMinMax(eConfigUint32Values index, char const* fieldname, uint32 defvalue, uint32 minvalue, uint32 maxvalue) +void World::setConfigMinMax(eConfigUInt32Values index, char const* fieldname, uint32 defvalue, uint32 minvalue, uint32 maxvalue) { setConfig(index, fieldname, defvalue); if (getConfig(index) < minvalue) @@ -2061,7 +2061,7 @@ void World::setConfigMinMax(eConfigInt32Values index, char const* fieldname, int } } -void World::setConfigMinMax(eConfigFLoatValues index, char const* fieldname, float defvalue, float minvalue, float maxvalue) +void World::setConfigMinMax(eConfigFloatValues index, char const* fieldname, float defvalue, float minvalue, float maxvalue) { setConfig(index, fieldname, defvalue); if (getConfig(index) < minvalue) @@ -2076,7 +2076,7 @@ void World::setConfigMinMax(eConfigFLoatValues index, char const* fieldname, flo } } -bool World::configNoReload(bool reload, eConfigUint32Values index, char const* fieldname, uint32 defvalue) +bool World::configNoReload(bool reload, eConfigUInt32Values index, char const* fieldname, uint32 defvalue) { if (!reload) return true; @@ -2100,7 +2100,7 @@ bool World::configNoReload(bool reload, eConfigInt32Values index, char const* fi return false; } -bool World::configNoReload(bool reload, eConfigFLoatValues index, char const* fieldname, float defvalue) +bool World::configNoReload(bool reload, eConfigFloatValues index, char const* fieldname, float defvalue) { if (!reload) return true; diff --git a/src/game/World.h b/src/game/World.h index 3c201437c..f65015ced 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -81,7 +81,7 @@ enum WorldTimers }; /// Configuration elements -enum eConfigUint32Values +enum eConfigUInt32Values { CONFIG_UINT32_COMPRESSION = 0, CONFIG_UINT32_INTERVAL_SAVE, @@ -184,7 +184,7 @@ enum eConfigInt32Values }; /// Server config -enum eConfigFLoatValues +enum eConfigFloatValues { CONFIG_FLOAT_RATE_HEALTH = 0, CONFIG_FLOAT_RATE_POWER_MANA, @@ -491,15 +491,15 @@ class World void UpdateSessions( uint32 diff ); - /// et a server configuration element (see #eConfigFLoatValues) - void setConfig(eConfigFLoatValues index,float value) { m_configFloatValues[index]=value; } - /// Get a server configuration element (see #eConfigFLoatValues) - float getConfig(eConfigFLoatValues rate) const { return m_configFloatValues[rate]; } + /// et a server configuration element (see #eConfigFloatValues) + void setConfig(eConfigFloatValues index,float value) { m_configFloatValues[index]=value; } + /// Get a server configuration element (see #eConfigFloatValues) + float getConfig(eConfigFloatValues rate) const { return m_configFloatValues[rate]; } - /// Set a server configuration element (see #eConfigUint32Values) - void setConfig(eConfigUint32Values index, uint32 value) { m_configUint32Values[index]=value; } - /// Get a server configuration element (see #eConfigUint32Values) - uint32 getConfig(eConfigUint32Values index) const { return m_configUint32Values[index]; } + /// Set a server configuration element (see #eConfigUInt32Values) + void setConfig(eConfigUInt32Values index, uint32 value) { m_configUint32Values[index]=value; } + /// Get a server configuration element (see #eConfigUInt32Values) + uint32 getConfig(eConfigUInt32Values index) const { return m_configUint32Values[index]; } /// Set a server configuration element (see #eConfigInt32Values) void setConfig(eConfigInt32Values index, int32 value) { m_configInt32Values[index]=value; } @@ -562,21 +562,21 @@ class World void InitDailyQuestResetTime(); void ResetDailyQuests(); private: - void setConfig(eConfigUint32Values index, char const* fieldname, uint32 defvalue); + void setConfig(eConfigUInt32Values index, char const* fieldname, uint32 defvalue); void setConfig(eConfigInt32Values index, char const* fieldname, int32 defvalue); - void setConfig(eConfigFLoatValues index, char const* fieldname, float defvalue); + void setConfig(eConfigFloatValues index, char const* fieldname, float defvalue); void setConfig(eConfigBoolValues index, char const* fieldname, bool defvalue); - void setConfigPos(eConfigUint32Values index, char const* fieldname, uint32 defvalue); - void setConfigPos(eConfigFLoatValues index, char const* fieldname, float defvalue); - void setConfigMin(eConfigUint32Values index, char const* fieldname, uint32 defvalue, uint32 minvalue); + void setConfigPos(eConfigUInt32Values index, char const* fieldname, uint32 defvalue); + void setConfigPos(eConfigFloatValues index, char const* fieldname, float defvalue); + void setConfigMin(eConfigUInt32Values index, char const* fieldname, uint32 defvalue, uint32 minvalue); void setConfigMin(eConfigInt32Values index, char const* fieldname, int32 defvalue, int32 minvalue); - void setConfigMin(eConfigFLoatValues index, char const* fieldname, float defvalue, float minvalue); - void setConfigMinMax(eConfigUint32Values index, char const* fieldname, uint32 defvalue, uint32 minvalue, uint32 maxvalue); + void setConfigMin(eConfigFloatValues index, char const* fieldname, float defvalue, float minvalue); + void setConfigMinMax(eConfigUInt32Values index, char const* fieldname, uint32 defvalue, uint32 minvalue, uint32 maxvalue); void setConfigMinMax(eConfigInt32Values index, char const* fieldname, int32 defvalue, int32 minvalue, int32 maxvalue); - void setConfigMinMax(eConfigFLoatValues index, char const* fieldname, float defvalue, float minvalue, float maxvalue); - bool configNoReload(bool reload, eConfigUint32Values index, char const* fieldname, uint32 defvalue); + void setConfigMinMax(eConfigFloatValues index, char const* fieldname, float defvalue, float minvalue, float maxvalue); + bool configNoReload(bool reload, eConfigUInt32Values index, char const* fieldname, uint32 defvalue); bool configNoReload(bool reload, eConfigInt32Values index, char const* fieldname, int32 defvalue); - bool configNoReload(bool reload, eConfigFLoatValues index, char const* fieldname, float defvalue); + bool configNoReload(bool reload, eConfigFloatValues index, char const* fieldname, float defvalue); bool configNoReload(bool reload, eConfigBoolValues index, char const* fieldname, bool defvalue); static volatile bool m_stopEvent; diff --git a/src/game/WorldSocket.cpp b/src/game/WorldSocket.cpp index c181c8d82..31b50c903 100644 --- a/src/game/WorldSocket.cpp +++ b/src/game/WorldSocket.cpp @@ -687,7 +687,7 @@ int WorldSocket::ProcessIncoming (WorldPacket* new_pct) return HandleAuthSession (*new_pct); case CMSG_KEEP_ALIVE: - DEBUG_LOG ("CMSG_KEEP_ALIVE ,size: %d", new_pct->size ()); + DEBUG_LOG ("CMSG_KEEP_ALIVE ,size: "SIZEFMTD" ", new_pct->size ()); return 0; default: diff --git a/src/realmd/AuthSocket.cpp b/src/realmd/AuthSocket.cpp index 11643afd3..a753435a0 100644 --- a/src/realmd/AuthSocket.cpp +++ b/src/realmd/AuthSocket.cpp @@ -276,11 +276,11 @@ void AuthSocket::OnRead() (table[i].status == STATUS_CONNECTED || (_authed && table[i].status == STATUS_AUTHED))) { - DEBUG_LOG("[Auth] got data for cmd %u ibuf length %u", (uint32)_cmd, ibuf.GetLength()); + DEBUG_LOG("[Auth] got data for cmd %u ibuf length "SIZEFMTD" ", (uint32)_cmd, ibuf.GetLength()); if (!(*this.*table[i].handler)()) { - DEBUG_LOG("Command handler failed for cmd %u ibuf length %u", (uint32)_cmd, ibuf.GetLength()); + DEBUG_LOG("Command handler failed for cmd %u ibuf length "SIZEFMTD" ", (uint32)_cmd, ibuf.GetLength()); return; } break; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 621438e16..da42beae0 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9630" + #define REVISION_NR "9631" #endif // __REVISION_NR_H__ From 1d0218bf7b5929df26f596cae1e0154c332d9153 Mon Sep 17 00:00:00 2001 From: hunuza Date: Sat, 27 Mar 2010 23:01:11 +0100 Subject: [PATCH 2/2] [9632] Restore load/save known titles. Signed-off-by: hunuza --- sql/characters.sql | 3 +- sql/updates/9632_01_characters_characters.sql | 9 +++++ sql/updates/Makefile.am | 2 ++ src/game/CharacterHandler.cpp | 2 +- src/game/LootMgr.cpp | 2 +- src/game/Player.cpp | 35 +++++++++++++++---- src/game/Player.h | 1 + src/shared/revision_nr.h | 2 +- src/shared/revision_sql.h | 2 +- 9 files changed, 47 insertions(+), 11 deletions(-) create mode 100644 sql/updates/9632_01_characters_characters.sql diff --git a/sql/characters.sql b/sql/characters.sql index 5590969a9..232b4f4f8 100644 --- a/sql/characters.sql +++ b/sql/characters.sql @@ -21,7 +21,7 @@ DROP TABLE IF EXISTS `character_db_version`; CREATE TABLE `character_db_version` ( - `required_9630_01_characters_characters` bit(1) default NULL + `required_9632_01_characters_characters` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Last applied sql update to DB'; -- @@ -254,6 +254,7 @@ CREATE TABLE `characters` ( `exploredZones` longtext, `equipmentCache` longtext, `ammoId` int(10) UNSIGNED NOT NULL default '0', + `knownTitles` longtext, PRIMARY KEY (`guid`), KEY `idx_account` (`account`), KEY `idx_online` (`online`), diff --git a/sql/updates/9632_01_characters_characters.sql b/sql/updates/9632_01_characters_characters.sql new file mode 100644 index 000000000..97255e153 --- /dev/null +++ b/sql/updates/9632_01_characters_characters.sql @@ -0,0 +1,9 @@ +ALTER TABLE character_db_version CHANGE COLUMN required_9630_01_characters_characters required_9632_01_characters_characters bit; + +ALTER TABLE characters + ADD COLUMN `knownTitles` longtext AFTER ammoId; + +UPDATE characters, data_backup +SET characters.knownTitles = SUBSTRING(data_backup.data, +length(SUBSTRING_INDEX(data_backup.data, ' ', 626))+2, +length(SUBSTRING_INDEX(data_backup.data, ' ', 631+1))- length(SUBSTRING_INDEX(data_backup.data, ' ', 626)) - 1); diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index 12a940909..a061318ba 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -92,6 +92,7 @@ pkgdata_DATA = \ 9611_01_characters.sql \ 9622_01_mangos_gameobject.sql \ 9630_01_characters_characters.sql \ + 9632_01_characters_characters.sql \ README ## Additional files to include when running 'make dist' @@ -164,4 +165,5 @@ EXTRA_DIST = \ 9611_01_characters.sql \ 9622_01_mangos_gameobject.sql \ 9630_01_characters_characters.sql \ + 9632_01_characters_characters.sql \ README diff --git a/src/game/CharacterHandler.cpp b/src/game/CharacterHandler.cpp index 1854556c7..aac4bfb0d 100644 --- a/src/game/CharacterHandler.cpp +++ b/src/game/CharacterHandler.cpp @@ -72,7 +72,7 @@ bool LoginQueryHolder::Initialize() "position_x, position_y, position_z, map, orientation, taximask, cinematic, totaltime, leveltime, rest_bonus, logout_time, is_logout_resting, resettalents_cost," "resettalents_time, trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, stable_slots, at_login, zone, online, death_expire_time, taxi_path, dungeon_difficulty," "arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk," - "health, power1, power2, power3, power4, power5, power6, power7, specCount, activeSpec, exploredZones, equipmentCache, ammoId FROM characters WHERE guid = '%u'", GUID_LOPART(m_guid)); + "health, power1, power2, power3, power4, power5, power6, power7, specCount, activeSpec, exploredZones, equipmentCache, ammoId, knownTitles FROM characters WHERE guid = '%u'", GUID_LOPART(m_guid)); res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADGROUP, "SELECT groupId FROM group_member WHERE memberGuid ='%u'", GUID_LOPART(m_guid)); res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADBOUNDINSTANCES, "SELECT id, permanent, map, difficulty, resettime FROM character_instance LEFT JOIN instance ON instance = id WHERE guid = '%u'", GUID_LOPART(m_guid)); res &= SetPQuery(PLAYER_LOGIN_QUERY_LOADAURAS, "SELECT caster_guid,spell,effect_index,stackcount,amount,maxduration,remaintime,remaincharges FROM character_aura WHERE guid = '%u'", GUID_LOPART(m_guid)); diff --git a/src/game/LootMgr.cpp b/src/game/LootMgr.cpp index d4dde29a7..abd73ca34 100644 --- a/src/game/LootMgr.cpp +++ b/src/game/LootMgr.cpp @@ -25,7 +25,7 @@ #include "SharedDefines.h" #include "SpellMgr.h" -static eConfigFLoatValues const qualityToRate[MAX_ITEM_QUALITY] = { +static eConfigFloatValues const qualityToRate[MAX_ITEM_QUALITY] = { CONFIG_FLOAT_RATE_DROP_ITEM_POOR, // ITEM_QUALITY_POOR CONFIG_FLOAT_RATE_DROP_ITEM_NORMAL, // ITEM_QUALITY_NORMAL CONFIG_FLOAT_RATE_DROP_ITEM_UNCOMMON, // ITEM_QUALITY_UNCOMMON diff --git a/src/game/Player.cpp b/src/game/Player.cpp index d77831f9a..8a32bf88b 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -14655,7 +14655,7 @@ void Player::_LoadExploredZones(const char* data) { if(!data) return; - + Tokens tokens = StrSplit(data, " "); if(tokens.size() != 128) @@ -14669,6 +14669,24 @@ void Player::_LoadExploredZones(const char* data) } } +void Player::_LoadKnownTitles(const char* data) +{ + if(!data) + return; + + Tokens tokens = StrSplit(data, " "); + + if(tokens.size() != 6) + return; + + Tokens::iterator iter; + int index; + for (iter = tokens.begin(), index = 0; index < 6; ++iter, ++index) + { + m_uint32Values[PLAYER__FIELD_KNOWN_TITLES + index] = atol((*iter).c_str()); + } +} + bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) { // 0 1 2 3 4 5 6 7 8 9 10 11 @@ -14679,8 +14697,8 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) //"resettalents_time, trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, stable_slots, at_login, zone, online, death_expire_time, taxi_path, dungeon_difficulty," // 39 40 41 42 43 44 45 46 47 48 49 //"arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk," - // 50 51 52 53 54 55 56 57 58 59 60 61 62 - //"health, power1, power2, power3, power4, power5, power6, power7, specCount, activeSpec, exploredZones, equipmentCache, ammoId FROM characters WHERE guid = '%u'", GUID_LOPART(m_guid)); + // 50 51 52 53 54 55 56 57 58 59 60 61 62 63 + //"health, power1, power2, power3, power4, power5, power6, power7, specCount, activeSpec, exploredZones, equipmentCache, ammoId, knownTitles FROM characters WHERE guid = '%u'", GUID_LOPART(m_guid)); QueryResult *result = holder->GetResult(PLAYER_LOGIN_QUERY_LOADFROM); if(!result) @@ -14729,6 +14747,7 @@ bool Player::LoadFromDB( uint32 guid, SqlQueryHolder *holder ) SetUInt32Value(PLAYER_XP, fields[7].GetUInt32()); _LoadExploredZones(fields[60].GetString()); + _LoadKnownTitles(fields[63].GetString()); SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, DEFAULT_WORLD_OBJECT_SIZE); SetFloatValue(UNIT_FIELD_COMBATREACH, 1.5f); SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 1.0f); @@ -16246,7 +16265,7 @@ void Player::SaveToDB() "trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, stable_slots, at_login, zone, " "death_expire_time, taxi_path, arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, " "todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk, health, power1, power2, power3, " - "power4, power5, power6, power7, specCount, activeSpec, exploredZones, equipmentCache, ammoId) VALUES (" + "power4, power5, power6, power7, specCount, activeSpec, exploredZones, equipmentCache, ammoId, knownTitles) VALUES (" << GetGUIDLow() << ", " << GetSession()->GetAccountId() << ", '" << sql_name << "', " @@ -16361,8 +16380,12 @@ void Player::SaveToDB() } ss << "',"; - ss << GetUInt32Value(PLAYER_AMMO_ID); - ss << ")"; + ss << GetUInt32Value(PLAYER_AMMO_ID) << ", '"; + for(uint32 i = 0; i < 6; ++i ) + { + ss << GetUInt32Value(PLAYER__FIELD_KNOWN_TITLES + i) << " "; + } + ss << "')"; CharacterDatabase.Execute( ss.str().c_str() ); diff --git a/src/game/Player.h b/src/game/Player.h index 1d356336d..65c8ebf95 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -2321,6 +2321,7 @@ class MANGOS_DLL_SPEC Player : public Unit void _LoadBGData(QueryResult* result); void _LoadGlyphs(QueryResult *result); void _LoadExploredZones(const char* data); + void _LoadKnownTitles(const char* data); /*********************************************************/ /*** SAVE SYSTEM ***/ diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index da42beae0..0ecdff1c9 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9631" + #define REVISION_NR "9632" #endif // __REVISION_NR_H__ diff --git a/src/shared/revision_sql.h b/src/shared/revision_sql.h index 6f663d158..9e0c4f6b4 100644 --- a/src/shared/revision_sql.h +++ b/src/shared/revision_sql.h @@ -1,6 +1,6 @@ #ifndef __REVISION_SQL_H__ #define __REVISION_SQL_H__ - #define REVISION_DB_CHARACTERS "required_9630_01_characters_characters" + #define REVISION_DB_CHARACTERS "required_9632_01_characters_characters" #define REVISION_DB_MANGOS "required_9622_01_mangos_gameobject" #define REVISION_DB_REALMD "required_9010_01_realmd_realmlist" #endif // __REVISION_SQL_H__