Decompile 2 functions in Source/Contents/ClientState.cpp, Source/Client/Session.h, ...
Batch #6512 by eAthena: 0 byte-identical, 2 confirmed by peer review. - fn_24217 CSession::ReadReplayQuests: logic confirmed by peer review - fn_05465 CRenewQuestMgr::ReadOngoingQuests: logic confirmed by peer review Peer-reviewed-by: ragnarok-clanker, gordaoprogramas, willerthal Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
This commit is contained in:
parent
d18970040b
commit
fcad6e032a
4 changed files with 52 additions and 2 deletions
|
|
@ -6,6 +6,7 @@
|
|||
#include "Contents/Actors/Pc.h"
|
||||
#include "Contents/EntryQueueMgr.h"
|
||||
#include "Contents/MessageTable.h"
|
||||
#include "Contents/RenewQuestMgr.h"
|
||||
#include "Contents/World/World.h"
|
||||
#include "UI/EntryQueue/UIEntryQueueWnd.h"
|
||||
#include "UI/Window/UIWindow.h"
|
||||
|
|
@ -863,6 +864,54 @@ std::uint32_t CSession::ReadReplayCompanions(const std::vector<unsigned char>& d
|
|||
return offset;
|
||||
}
|
||||
|
||||
// OFFSET: 0x00E48100
|
||||
// FUNCTION: fn_24217
|
||||
std::uint32_t CSession::ReadReplayQuests(const std::vector<unsigned char>& data) {
|
||||
if (data.begin() == data.end()) {
|
||||
return 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
std::uint32_t offset = 6;
|
||||
ReplayBlockHeader header{};
|
||||
std::memcpy(&header, data.data(), sizeof(header));
|
||||
if (header.id != 3500) {
|
||||
return 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
g_renewQuestMgr->m_ongoingQuests.clear();
|
||||
g_renewQuestMgr->SetParameter(3502, 0x18);
|
||||
while (offset < data.size()) {
|
||||
header = {};
|
||||
std::memcpy(&header, data.data() + offset, sizeof(header));
|
||||
offset += 6;
|
||||
switch (header.id) {
|
||||
case 3501:
|
||||
return offset;
|
||||
case 3502: {
|
||||
int parameter;
|
||||
std::memcpy(¶meter, data.data() + offset, header.bytes);
|
||||
offset += header.bytes;
|
||||
g_renewQuestMgr->SetParameter(3502, parameter);
|
||||
break;
|
||||
}
|
||||
case 3510: {
|
||||
const std::uint32_t bytes = header.bytes;
|
||||
char* buffer = new char[bytes];
|
||||
std::memcpy(buffer, data.data() + offset, bytes);
|
||||
offset += bytes;
|
||||
g_renewQuestMgr->ReadOngoingQuests(buffer, bytes);
|
||||
delete buffer;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
offset += header.bytes;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
// OFFSET: 0x00E488C0
|
||||
// FUNCTION: fn_24221
|
||||
void CSession::UpdateBodyStyle(int job, int style, int renderJob) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue