Compare commits

...

3 Commits

6 changed files with 18 additions and 12 deletions

@ -1 +1 @@
Subproject commit 438c900ff50b2dff0d8f7d9ff711051a3c83cbac
Subproject commit 422bc11d30c6761343877677539dc4704ed8e05d

@ -1 +1 @@
Subproject commit 98bc6a59bcf1016b9f85239e6918e595ca0331c0
Subproject commit 4cd18ccfd0b507fb686e1260b5d4c00a17c9d785

View File

@ -16,3 +16,13 @@ void ClientRealmResponseAdapter::HandleAuthResponse(RealmConnection* realmConnec
AccountDataInitialize(true);
}
void ClientRealmResponseAdapter::CharacterListReceived(RealmConnection* realmConnection, void* a2, int32_t success) {
auto clientConnection = static_cast<ClientConnection*>(realmConnection);
if (success) {
clientConnection->Complete(1, 44);
} else {
clientConnection->Complete(1, 45);
}
}

View File

@ -7,6 +7,7 @@ class ClientRealmResponseAdapter : public RealmResponse {
public:
// Virtual member functions
virtual void HandleAuthResponse(RealmConnection* realmConnection, uint8_t authResult);
virtual void CharacterListReceived(RealmConnection* realmConnection, void* a2, int32_t success);
virtual void GameServerResult(RealmConnection* realmConnection, const char* a2, const char* a3, const char* a4) {};
};

View File

@ -241,10 +241,10 @@ int32_t RealmConnection::HandleCharEnum(uint32_t msgId, uint32_t time, CDataStor
}
}
bool success = false;
int32_t success = 0;
if (msg->IsRead()) {
if (!overflow) {
success = true;
success = 1;
}
} else if (!overflow) {
// TODO: Proper implementation
@ -260,7 +260,7 @@ int32_t RealmConnection::HandleCharEnum(uint32_t msgId, uint32_t time, CDataStor
msg->Get(value);
msg->Get(value);
if (msg->IsRead()) {
success = true;
success = 1;
}
}
@ -268,13 +268,7 @@ int32_t RealmConnection::HandleCharEnum(uint32_t msgId, uint32_t time, CDataStor
m_characterList.Clear();
}
// TODO: Should be implemented as call of sub_6B2000
if (success) {
this->Complete(1, 44);
} else {
this->Complete(1, 45);
}
this->m_realmResponse->CharacterListReceived(this, msg, success);
return 1;
}

View File

@ -5,6 +5,7 @@ class RealmResponse {
public:
// Virtual member functions
virtual void HandleAuthResponse(RealmConnection* connection, uint8_t authResult) = 0;
virtual void CharacterListReceived(RealmConnection* connection, void* a2, int32_t success) = 0;
virtual void GameServerResult(RealmConnection* connection, const char* a3, const char* a4, const char* a5) = 0;
};