aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorsilinoron <none@none>2010-08-17 19:18:09 -0700
committersilinoron <none@none>2010-08-17 19:18:09 -0700
commitd6fe4b23e94f2d44d4b5161260e29aa56184e4ca (patch)
treec1b2bb0e96d4b439f84b916c74db3ebd9c751b07 /src/server/game/Server
parent8c4c5aef8bbb1c985ffac68535f9d1050ed22d6f (diff)
Add support for recruit-a-friend XP and reputation multipliers.
More research needs to be done to implement summoning and granting levels. --HG-- branch : trunk
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/WorldSession.cpp8
-rw-r--r--src/server/game/Server/WorldSession.h5
-rw-r--r--src/server/game/Server/WorldSocket.cpp7
3 files changed, 13 insertions, 7 deletions
diff --git a/src/server/game/Server/WorldSession.cpp b/src/server/game/Server/WorldSession.cpp
index 7e34afe09f8..fc63e2b6e75 100644
--- a/src/server/game/Server/WorldSession.cpp
+++ b/src/server/game/Server/WorldSession.cpp
@@ -46,16 +46,16 @@
#include "Transport.h"
/// WorldSession constructor
-WorldSession::WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale) :
+WorldSession::WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale, uint32 recruiter) :
m_muteTime(mute_time), _player(NULL), m_Socket(sock),_security(sec), _accountId(id), m_expansion(expansion),
m_sessionDbcLocale(sWorld.GetAvailableDbcLocale(locale)), m_sessionDbLocaleIndex(sObjectMgr.GetIndexForLocale(locale)),
_logoutTime(0), m_inQueue(false), m_playerLoading(false), m_playerLogout(false), m_playerRecentlyLogout(false), m_playerSave(false),
-m_latency(0), m_TutorialsChanged(false), m_timeOutTime(0)
+m_latency(0), m_TutorialsChanged(false), m_timeOutTime(0), recruiterId(recruiter)
{
if (sock)
{
- m_Address = sock->GetRemoteAddress ();
- sock->AddReference ();
+ m_Address = sock->GetRemoteAddress();
+ sock->AddReference();
ResetTimeOutTime();
LoginDatabase.PExecute("UPDATE account SET online = 1 WHERE id = %u;", GetAccountId());
}
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 9c6dd70831f..7251e900ae0 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -129,7 +129,7 @@ class WorldSession
{
friend class CharacterHandler;
public:
- WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale);
+ WorldSession(uint32 id, WorldSocket *sock, AccountTypes sec, uint8 expansion, time_t mute_time, LocaleConstant locale, uint32 recruiter);
~WorldSession();
bool PlayerLoading() const { return m_playerLoading; }
@@ -306,6 +306,8 @@ class WorldSession
return false;
}
+ // Recruit-A-Friend Handling
+ uint32 GetRecruiterId() { return recruiterId; }
public: // opcodes handlers
@@ -826,6 +828,7 @@ class WorldSession
uint32 m_Tutorials[8];
bool m_TutorialsChanged;
AddonsList m_addonsList;
+ uint32 recruiterId;
ACE_Based::LockedQueue<WorldPacket*, ACE_Thread_Mutex> _recvQueue;
};
#endif
diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp
index 09d2199b3ff..146595ff910 100644
--- a/src/server/game/Server/WorldSocket.cpp
+++ b/src/server/game/Server/WorldSocket.cpp
@@ -829,7 +829,8 @@ int WorldSocket::HandleAuthSession (WorldPacket& recvPacket)
"s, " //5
"expansion, " //6
"mutetime, " //7
- "locale " //8
+ "locale, " //8
+ "recruiter " //9
"FROM account "
"WHERE username = '%s'",
safe_account.c_str());
@@ -898,6 +899,8 @@ int WorldSocket::HandleAuthSession (WorldPacket& recvPacket)
if (locale >= MAX_LOCALE)
locale = LOCALE_enUS;
+ uint32 recruiter = fields[9].GetUInt32();
+
// Checks gmlevel per Realm
result =
LoginDatabase.PQuery ("SELECT "
@@ -989,7 +992,7 @@ int WorldSocket::HandleAuthSession (WorldPacket& recvPacket)
safe_account.c_str());
// NOTE ATM the socket is single-threaded, have this in mind ...
- ACE_NEW_RETURN (m_Session, WorldSession (id, this, AccountTypes(security), expansion, mutetime, locale), -1);
+ ACE_NEW_RETURN (m_Session, WorldSession (id, this, AccountTypes(security), expansion, mutetime, locale, recruiter), -1);
m_Crypt.Init(&K);