mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-31 13:16:39 +00:00
Fix up OP_OpenNewTasksWindow for older clients
This commit is contained in:
@@ -1863,120 +1863,6 @@ namespace RoF
|
||||
FINISH_ENCODE();
|
||||
}
|
||||
|
||||
/*
|
||||
ENCODE(OP_OpenNewTasksWindow)
|
||||
{
|
||||
AvailableTaskHeader_Struct* __emu_AvailableTaskHeader;
|
||||
AvailableTaskData1_Struct* __emu_AvailableTaskData1;
|
||||
AvailableTaskData2_Struct* __emu_AvailableTaskData2;
|
||||
AvailableTaskTrailer_Struct* __emu_AvailableTaskTrailer;
|
||||
|
||||
structs::AvailableTaskHeader_Struct* __eq_AvailableTaskHeader;
|
||||
structs::AvailableTaskData1_Struct* __eq_AvailableTaskData1;
|
||||
structs::AvailableTaskData2_Struct* __eq_AvailableTaskData2;
|
||||
structs::AvailableTaskTrailer_Struct* __eq_AvailableTaskTrailer;
|
||||
|
||||
EQApplicationPacket *in = *p;
|
||||
*p = nullptr;
|
||||
|
||||
unsigned char *__emu_buffer = in->pBuffer;
|
||||
|
||||
__emu_AvailableTaskHeader = (AvailableTaskHeader_Struct*)__emu_buffer;
|
||||
|
||||
// For each task, SoF has an extra uint32 and what appears to be space for a null terminated string.
|
||||
//
|
||||
in->size = in->size + (__emu_AvailableTaskHeader->TaskCount * 5);
|
||||
|
||||
in->pBuffer = new unsigned char[in->size];
|
||||
|
||||
unsigned char *__eq_buffer = in->pBuffer;
|
||||
|
||||
__eq_AvailableTaskHeader = (structs::AvailableTaskHeader_Struct*)__eq_buffer;
|
||||
|
||||
char *__eq_ptr, *__emu_Ptr;
|
||||
|
||||
// Copy Header
|
||||
//
|
||||
//
|
||||
|
||||
__eq_AvailableTaskHeader->TaskCount = __emu_AvailableTaskHeader->TaskCount;
|
||||
__eq_AvailableTaskHeader->unknown1 = __emu_AvailableTaskHeader->unknown1;
|
||||
__eq_AvailableTaskHeader->TaskGiver = __emu_AvailableTaskHeader->TaskGiver;
|
||||
|
||||
__emu_Ptr = (char *) __emu_AvailableTaskHeader + sizeof(AvailableTaskHeader_Struct);
|
||||
__eq_ptr = (char *) __eq_AvailableTaskHeader + sizeof(structs::AvailableTaskHeader_Struct);
|
||||
|
||||
for(uint32 i=0; i<__emu_AvailableTaskHeader->TaskCount; i++) {
|
||||
|
||||
__emu_AvailableTaskData1 = (AvailableTaskData1_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskData1 = (structs::AvailableTaskData1_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskData1->TaskID = __emu_AvailableTaskData1->TaskID;
|
||||
// This next unknown seems to affect the colour of the task title. 0x3f80000 is what I have seen
|
||||
// in RoF packets. Changing it to 0x3f000000 makes the title red.
|
||||
__eq_AvailableTaskData1->unknown1 = 0x3f800000;
|
||||
__eq_AvailableTaskData1->TimeLimit = __emu_AvailableTaskData1->TimeLimit;
|
||||
__eq_AvailableTaskData1->unknown2 = __emu_AvailableTaskData1->unknown2;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskData1_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskData1_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Title
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Description
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__eq_ptr[0] = 0;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__emu_AvailableTaskData2 = (AvailableTaskData2_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskData2 = (structs::AvailableTaskData2_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskData2->unknown1 = __emu_AvailableTaskData2->unknown1;
|
||||
__eq_AvailableTaskData2->unknown2 = __emu_AvailableTaskData2->unknown2;
|
||||
__eq_AvailableTaskData2->unknown3 = __emu_AvailableTaskData2->unknown3;
|
||||
__eq_AvailableTaskData2->unknown4 = __emu_AvailableTaskData2->unknown4;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskData2_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskData2_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__emu_AvailableTaskTrailer = (AvailableTaskTrailer_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskTrailer = (structs::AvailableTaskTrailer_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskTrailer->ItemCount = __emu_AvailableTaskTrailer->ItemCount;
|
||||
__eq_AvailableTaskTrailer->unknown1 = __emu_AvailableTaskTrailer->unknown1;
|
||||
__eq_AvailableTaskTrailer->unknown2 = __emu_AvailableTaskTrailer->unknown2;
|
||||
__eq_AvailableTaskTrailer->StartZone = __emu_AvailableTaskTrailer->StartZone;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskTrailer_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskTrailer_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
}
|
||||
|
||||
delete[] __emu_buffer;
|
||||
dest->FastQueuePacket(&in, ack_req);
|
||||
}
|
||||
*/
|
||||
|
||||
ENCODE(OP_PetBuffWindow)
|
||||
{
|
||||
// The format of the RoF packet is identical to the OP_BuffCreate packet.
|
||||
|
||||
@@ -1940,120 +1940,6 @@ namespace RoF2
|
||||
FINISH_ENCODE();
|
||||
}
|
||||
|
||||
/*
|
||||
ENCODE(OP_OpenNewTasksWindow)
|
||||
{
|
||||
AvailableTaskHeader_Struct* __emu_AvailableTaskHeader;
|
||||
AvailableTaskData1_Struct* __emu_AvailableTaskData1;
|
||||
AvailableTaskData2_Struct* __emu_AvailableTaskData2;
|
||||
AvailableTaskTrailer_Struct* __emu_AvailableTaskTrailer;
|
||||
|
||||
structs::AvailableTaskHeader_Struct* __eq_AvailableTaskHeader;
|
||||
structs::AvailableTaskData1_Struct* __eq_AvailableTaskData1;
|
||||
structs::AvailableTaskData2_Struct* __eq_AvailableTaskData2;
|
||||
structs::AvailableTaskTrailer_Struct* __eq_AvailableTaskTrailer;
|
||||
|
||||
EQApplicationPacket *in = *p;
|
||||
*p = nullptr;
|
||||
|
||||
unsigned char *__emu_buffer = in->pBuffer;
|
||||
|
||||
__emu_AvailableTaskHeader = (AvailableTaskHeader_Struct*)__emu_buffer;
|
||||
|
||||
// For each task, SoF has an extra uint32 and what appears to be space for a null terminated string.
|
||||
//
|
||||
in->size = in->size + (__emu_AvailableTaskHeader->TaskCount * 5);
|
||||
|
||||
in->pBuffer = new unsigned char[in->size];
|
||||
|
||||
unsigned char *__eq_buffer = in->pBuffer;
|
||||
|
||||
__eq_AvailableTaskHeader = (structs::AvailableTaskHeader_Struct*)__eq_buffer;
|
||||
|
||||
char *__eq_ptr, *__emu_Ptr;
|
||||
|
||||
// Copy Header
|
||||
//
|
||||
//
|
||||
|
||||
__eq_AvailableTaskHeader->TaskCount = __emu_AvailableTaskHeader->TaskCount;
|
||||
__eq_AvailableTaskHeader->unknown1 = __emu_AvailableTaskHeader->unknown1;
|
||||
__eq_AvailableTaskHeader->TaskGiver = __emu_AvailableTaskHeader->TaskGiver;
|
||||
|
||||
__emu_Ptr = (char *) __emu_AvailableTaskHeader + sizeof(AvailableTaskHeader_Struct);
|
||||
__eq_ptr = (char *) __eq_AvailableTaskHeader + sizeof(structs::AvailableTaskHeader_Struct);
|
||||
|
||||
for(uint32 i=0; i<__emu_AvailableTaskHeader->TaskCount; i++) {
|
||||
|
||||
__emu_AvailableTaskData1 = (AvailableTaskData1_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskData1 = (structs::AvailableTaskData1_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskData1->TaskID = __emu_AvailableTaskData1->TaskID;
|
||||
// This next unknown seems to affect the colour of the task title. 0x3f80000 is what I have seen
|
||||
// in RoF2 packets. Changing it to 0x3f000000 makes the title red.
|
||||
__eq_AvailableTaskData1->unknown1 = 0x3f800000;
|
||||
__eq_AvailableTaskData1->TimeLimit = __emu_AvailableTaskData1->TimeLimit;
|
||||
__eq_AvailableTaskData1->unknown2 = __emu_AvailableTaskData1->unknown2;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskData1_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskData1_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Title
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Description
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__eq_ptr[0] = 0;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__emu_AvailableTaskData2 = (AvailableTaskData2_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskData2 = (structs::AvailableTaskData2_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskData2->unknown1 = __emu_AvailableTaskData2->unknown1;
|
||||
__eq_AvailableTaskData2->unknown2 = __emu_AvailableTaskData2->unknown2;
|
||||
__eq_AvailableTaskData2->unknown3 = __emu_AvailableTaskData2->unknown3;
|
||||
__eq_AvailableTaskData2->unknown4 = __emu_AvailableTaskData2->unknown4;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskData2_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskData2_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__emu_AvailableTaskTrailer = (AvailableTaskTrailer_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskTrailer = (structs::AvailableTaskTrailer_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskTrailer->ItemCount = __emu_AvailableTaskTrailer->ItemCount;
|
||||
__eq_AvailableTaskTrailer->unknown1 = __emu_AvailableTaskTrailer->unknown1;
|
||||
__eq_AvailableTaskTrailer->unknown2 = __emu_AvailableTaskTrailer->unknown2;
|
||||
__eq_AvailableTaskTrailer->StartZone = __emu_AvailableTaskTrailer->StartZone;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskTrailer_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskTrailer_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
}
|
||||
|
||||
delete[] __emu_buffer;
|
||||
dest->FastQueuePacket(&in, ack_req);
|
||||
}
|
||||
*/
|
||||
|
||||
ENCODE(OP_PetBuffWindow)
|
||||
{
|
||||
// The format of the RoF2 packet is identical to the OP_BuffCreate packet.
|
||||
|
||||
@@ -98,7 +98,6 @@ E(OP_MoveItem)
|
||||
E(OP_NewSpawn)
|
||||
E(OP_NewZone)
|
||||
E(OP_OnLevelMessage)
|
||||
//E(OP_OpenNewTasksWindow)
|
||||
E(OP_PetBuffWindow)
|
||||
E(OP_PlayerProfile)
|
||||
E(OP_RaidJoin)
|
||||
|
||||
@@ -83,7 +83,6 @@ E(OP_MoveItem)
|
||||
E(OP_NewSpawn)
|
||||
E(OP_NewZone)
|
||||
E(OP_OnLevelMessage)
|
||||
//E(OP_OpenNewTasksWindow)
|
||||
E(OP_PetBuffWindow)
|
||||
E(OP_PlayerProfile)
|
||||
E(OP_RaidJoin)
|
||||
|
||||
@@ -1383,114 +1383,6 @@ namespace SoD
|
||||
FINISH_ENCODE();
|
||||
}
|
||||
|
||||
ENCODE(OP_OpenNewTasksWindow)
|
||||
{
|
||||
AvailableTaskHeader_Struct* __emu_AvailableTaskHeader;
|
||||
AvailableTaskData1_Struct* __emu_AvailableTaskData1;
|
||||
AvailableTaskData2_Struct* __emu_AvailableTaskData2;
|
||||
AvailableTaskTrailer_Struct* __emu_AvailableTaskTrailer;
|
||||
|
||||
structs::AvailableTaskHeader_Struct* __eq_AvailableTaskHeader;
|
||||
structs::AvailableTaskData1_Struct* __eq_AvailableTaskData1;
|
||||
structs::AvailableTaskData2_Struct* __eq_AvailableTaskData2;
|
||||
structs::AvailableTaskTrailer_Struct* __eq_AvailableTaskTrailer;
|
||||
|
||||
EQApplicationPacket *in = *p;
|
||||
*p = nullptr;
|
||||
|
||||
unsigned char *__emu_buffer = in->pBuffer;
|
||||
|
||||
__emu_AvailableTaskHeader = (AvailableTaskHeader_Struct*)__emu_buffer;
|
||||
|
||||
// For each task, SoF has an extra uint32 and what appears to be space for a null terminated string.
|
||||
//
|
||||
in->size = in->size + (__emu_AvailableTaskHeader->TaskCount * 5);
|
||||
in->pBuffer = new unsigned char[in->size];
|
||||
unsigned char *__eq_buffer = in->pBuffer;
|
||||
__eq_AvailableTaskHeader = (structs::AvailableTaskHeader_Struct*)__eq_buffer;
|
||||
char *__eq_ptr, *__emu_Ptr;
|
||||
|
||||
// Copy Header
|
||||
//
|
||||
//
|
||||
|
||||
__eq_AvailableTaskHeader->TaskCount = __emu_AvailableTaskHeader->TaskCount;
|
||||
__eq_AvailableTaskHeader->unknown1 = __emu_AvailableTaskHeader->unknown1;
|
||||
__eq_AvailableTaskHeader->TaskGiver = __emu_AvailableTaskHeader->TaskGiver;
|
||||
|
||||
__emu_Ptr = (char *)__emu_AvailableTaskHeader + sizeof(AvailableTaskHeader_Struct);
|
||||
__eq_ptr = (char *)__eq_AvailableTaskHeader + sizeof(structs::AvailableTaskHeader_Struct);
|
||||
|
||||
for (uint32 i = 0; i<__emu_AvailableTaskHeader->TaskCount; i++) {
|
||||
|
||||
__emu_AvailableTaskData1 = (AvailableTaskData1_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskData1 = (structs::AvailableTaskData1_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskData1->TaskID = __emu_AvailableTaskData1->TaskID;
|
||||
// This next unknown seems to affect the colour of the task title. 0x3f80000 is what I have seen
|
||||
// in Live packets. Changing it to 0x3f000000 makes the title red.
|
||||
__eq_AvailableTaskData1->unknown1 = 0x3f800000;
|
||||
__eq_AvailableTaskData1->TimeLimit = __emu_AvailableTaskData1->TimeLimit;
|
||||
__eq_AvailableTaskData1->unknown2 = __emu_AvailableTaskData1->unknown2;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskData1_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskData1_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Title
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Description
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__eq_ptr[0] = 0;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__emu_AvailableTaskData2 = (AvailableTaskData2_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskData2 = (structs::AvailableTaskData2_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskData2->unknown1 = __emu_AvailableTaskData2->unknown1;
|
||||
__eq_AvailableTaskData2->unknown2 = __emu_AvailableTaskData2->unknown2;
|
||||
__eq_AvailableTaskData2->unknown3 = __emu_AvailableTaskData2->unknown3;
|
||||
__eq_AvailableTaskData2->unknown4 = __emu_AvailableTaskData2->unknown4;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskData2_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskData2_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__emu_AvailableTaskTrailer = (AvailableTaskTrailer_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskTrailer = (structs::AvailableTaskTrailer_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskTrailer->ItemCount = __emu_AvailableTaskTrailer->ItemCount;
|
||||
__eq_AvailableTaskTrailer->unknown1 = __emu_AvailableTaskTrailer->unknown1;
|
||||
__eq_AvailableTaskTrailer->unknown2 = __emu_AvailableTaskTrailer->unknown2;
|
||||
__eq_AvailableTaskTrailer->StartZone = __emu_AvailableTaskTrailer->StartZone;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskTrailer_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskTrailer_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
}
|
||||
|
||||
delete[] __emu_buffer;
|
||||
dest->FastQueuePacket(&in, ack_req);
|
||||
}
|
||||
|
||||
ENCODE(OP_PetBuffWindow)
|
||||
{
|
||||
EQApplicationPacket *in = *p;
|
||||
|
||||
@@ -67,7 +67,6 @@ E(OP_MoveItem)
|
||||
E(OP_NewSpawn)
|
||||
E(OP_NewZone)
|
||||
E(OP_OnLevelMessage)
|
||||
E(OP_OpenNewTasksWindow)
|
||||
E(OP_PetBuffWindow)
|
||||
E(OP_PlayerProfile)
|
||||
E(OP_RaidJoin)
|
||||
|
||||
@@ -1060,118 +1060,6 @@ namespace SoF
|
||||
FINISH_ENCODE();
|
||||
}
|
||||
|
||||
ENCODE(OP_OpenNewTasksWindow)
|
||||
{
|
||||
AvailableTaskHeader_Struct* __emu_AvailableTaskHeader;
|
||||
AvailableTaskData1_Struct* __emu_AvailableTaskData1;
|
||||
AvailableTaskData2_Struct* __emu_AvailableTaskData2;
|
||||
AvailableTaskTrailer_Struct* __emu_AvailableTaskTrailer;
|
||||
|
||||
structs::AvailableTaskHeader_Struct* __eq_AvailableTaskHeader;
|
||||
structs::AvailableTaskData1_Struct* __eq_AvailableTaskData1;
|
||||
structs::AvailableTaskData2_Struct* __eq_AvailableTaskData2;
|
||||
structs::AvailableTaskTrailer_Struct* __eq_AvailableTaskTrailer;
|
||||
|
||||
EQApplicationPacket *in = *p;
|
||||
*p = nullptr;
|
||||
|
||||
unsigned char *__emu_buffer = in->pBuffer;
|
||||
|
||||
__emu_AvailableTaskHeader = (AvailableTaskHeader_Struct*)__emu_buffer;
|
||||
|
||||
// For each task, SoF has an extra uint32 and what appears to be space for a null terminated string.
|
||||
//
|
||||
in->size = in->size + (__emu_AvailableTaskHeader->TaskCount * 5);
|
||||
|
||||
in->pBuffer = new unsigned char[in->size];
|
||||
|
||||
unsigned char *__eq_buffer = in->pBuffer;
|
||||
|
||||
__eq_AvailableTaskHeader = (structs::AvailableTaskHeader_Struct*)__eq_buffer;
|
||||
|
||||
char *__eq_ptr, *__emu_Ptr;
|
||||
|
||||
// Copy Header
|
||||
//
|
||||
//
|
||||
|
||||
__eq_AvailableTaskHeader->TaskCount = __emu_AvailableTaskHeader->TaskCount;
|
||||
__eq_AvailableTaskHeader->unknown1 = __emu_AvailableTaskHeader->unknown1;
|
||||
__eq_AvailableTaskHeader->TaskGiver = __emu_AvailableTaskHeader->TaskGiver;
|
||||
|
||||
__emu_Ptr = (char *)__emu_AvailableTaskHeader + sizeof(AvailableTaskHeader_Struct);
|
||||
__eq_ptr = (char *)__eq_AvailableTaskHeader + sizeof(structs::AvailableTaskHeader_Struct);
|
||||
|
||||
for (uint32 i = 0; i<__emu_AvailableTaskHeader->TaskCount; i++) {
|
||||
|
||||
__emu_AvailableTaskData1 = (AvailableTaskData1_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskData1 = (structs::AvailableTaskData1_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskData1->TaskID = __emu_AvailableTaskData1->TaskID;
|
||||
// This next unknown seems to affect the colour of the task title. 0x3f80000 is what I have seen
|
||||
// in Live packets. Changing it to 0x3f000000 makes the title red.
|
||||
__eq_AvailableTaskData1->unknown1 = 0x3f800000;
|
||||
__eq_AvailableTaskData1->TimeLimit = __emu_AvailableTaskData1->TimeLimit;
|
||||
__eq_AvailableTaskData1->unknown2 = __emu_AvailableTaskData1->unknown2;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskData1_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskData1_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Title
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Description
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__eq_ptr[0] = 0;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__emu_AvailableTaskData2 = (AvailableTaskData2_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskData2 = (structs::AvailableTaskData2_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskData2->unknown1 = __emu_AvailableTaskData2->unknown1;
|
||||
__eq_AvailableTaskData2->unknown2 = __emu_AvailableTaskData2->unknown2;
|
||||
__eq_AvailableTaskData2->unknown3 = __emu_AvailableTaskData2->unknown3;
|
||||
__eq_AvailableTaskData2->unknown4 = __emu_AvailableTaskData2->unknown4;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskData2_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskData2_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__emu_AvailableTaskTrailer = (AvailableTaskTrailer_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskTrailer = (structs::AvailableTaskTrailer_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskTrailer->ItemCount = __emu_AvailableTaskTrailer->ItemCount;
|
||||
__eq_AvailableTaskTrailer->unknown1 = __emu_AvailableTaskTrailer->unknown1;
|
||||
__eq_AvailableTaskTrailer->unknown2 = __emu_AvailableTaskTrailer->unknown2;
|
||||
__eq_AvailableTaskTrailer->StartZone = __emu_AvailableTaskTrailer->StartZone;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskTrailer_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskTrailer_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
}
|
||||
|
||||
delete[] __emu_buffer;
|
||||
dest->FastQueuePacket(&in, ack_req);
|
||||
}
|
||||
|
||||
ENCODE(OP_PetBuffWindow)
|
||||
{
|
||||
ENCODE_LENGTH_EXACT(PetBuff_Struct);
|
||||
|
||||
@@ -62,7 +62,6 @@ E(OP_MoveItem)
|
||||
E(OP_NewSpawn)
|
||||
E(OP_NewZone)
|
||||
E(OP_OnLevelMessage)
|
||||
E(OP_OpenNewTasksWindow)
|
||||
E(OP_PetBuffWindow)
|
||||
E(OP_PlayerProfile)
|
||||
E(OP_RaidJoin)
|
||||
|
||||
@@ -1609,117 +1609,6 @@ namespace UF
|
||||
FINISH_ENCODE();
|
||||
}
|
||||
|
||||
ENCODE(OP_OpenNewTasksWindow)
|
||||
{
|
||||
AvailableTaskHeader_Struct* __emu_AvailableTaskHeader;
|
||||
AvailableTaskData1_Struct* __emu_AvailableTaskData1;
|
||||
AvailableTaskData2_Struct* __emu_AvailableTaskData2;
|
||||
AvailableTaskTrailer_Struct* __emu_AvailableTaskTrailer;
|
||||
|
||||
structs::AvailableTaskHeader_Struct* __eq_AvailableTaskHeader;
|
||||
structs::AvailableTaskData1_Struct* __eq_AvailableTaskData1;
|
||||
structs::AvailableTaskData2_Struct* __eq_AvailableTaskData2;
|
||||
structs::AvailableTaskTrailer_Struct* __eq_AvailableTaskTrailer;
|
||||
|
||||
EQApplicationPacket *in = *p;
|
||||
*p = nullptr;
|
||||
|
||||
unsigned char *__emu_buffer = in->pBuffer;
|
||||
|
||||
__emu_AvailableTaskHeader = (AvailableTaskHeader_Struct*)__emu_buffer;
|
||||
|
||||
// For each task, SoF has an extra uint32 and what appears to be space for a null terminated string.
|
||||
//
|
||||
in->size = in->size + (__emu_AvailableTaskHeader->TaskCount * 5);
|
||||
in->pBuffer = new unsigned char[in->size];
|
||||
|
||||
unsigned char *__eq_buffer = in->pBuffer;
|
||||
|
||||
__eq_AvailableTaskHeader = (structs::AvailableTaskHeader_Struct*)__eq_buffer;
|
||||
|
||||
char *__eq_ptr, *__emu_Ptr;
|
||||
|
||||
// Copy Header
|
||||
//
|
||||
//
|
||||
|
||||
__eq_AvailableTaskHeader->TaskCount = __emu_AvailableTaskHeader->TaskCount;
|
||||
__eq_AvailableTaskHeader->unknown1 = __emu_AvailableTaskHeader->unknown1;
|
||||
__eq_AvailableTaskHeader->TaskGiver = __emu_AvailableTaskHeader->TaskGiver;
|
||||
|
||||
__emu_Ptr = (char *)__emu_AvailableTaskHeader + sizeof(AvailableTaskHeader_Struct);
|
||||
__eq_ptr = (char *)__eq_AvailableTaskHeader + sizeof(structs::AvailableTaskHeader_Struct);
|
||||
|
||||
for (uint32 i = 0; i<__emu_AvailableTaskHeader->TaskCount; i++) {
|
||||
|
||||
__emu_AvailableTaskData1 = (AvailableTaskData1_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskData1 = (structs::AvailableTaskData1_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskData1->TaskID = __emu_AvailableTaskData1->TaskID;
|
||||
// This next unknown seems to affect the colour of the task title. 0x3f80000 is what I have seen
|
||||
// in Underfoot packets. Changing it to 0x3f000000 makes the title red.
|
||||
__eq_AvailableTaskData1->unknown1 = 0x3f800000;
|
||||
__eq_AvailableTaskData1->TimeLimit = __emu_AvailableTaskData1->TimeLimit;
|
||||
__eq_AvailableTaskData1->unknown2 = __emu_AvailableTaskData1->unknown2;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskData1_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskData1_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Title
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Description
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__eq_ptr[0] = 0;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__emu_AvailableTaskData2 = (AvailableTaskData2_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskData2 = (structs::AvailableTaskData2_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskData2->unknown1 = __emu_AvailableTaskData2->unknown1;
|
||||
__eq_AvailableTaskData2->unknown2 = __emu_AvailableTaskData2->unknown2;
|
||||
__eq_AvailableTaskData2->unknown3 = __emu_AvailableTaskData2->unknown3;
|
||||
__eq_AvailableTaskData2->unknown4 = __emu_AvailableTaskData2->unknown4;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskData2_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskData2_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
|
||||
__emu_AvailableTaskTrailer = (AvailableTaskTrailer_Struct*)__emu_Ptr;
|
||||
__eq_AvailableTaskTrailer = (structs::AvailableTaskTrailer_Struct*)__eq_ptr;
|
||||
|
||||
__eq_AvailableTaskTrailer->ItemCount = __emu_AvailableTaskTrailer->ItemCount;
|
||||
__eq_AvailableTaskTrailer->unknown1 = __emu_AvailableTaskTrailer->unknown1;
|
||||
__eq_AvailableTaskTrailer->unknown2 = __emu_AvailableTaskTrailer->unknown2;
|
||||
__eq_AvailableTaskTrailer->StartZone = __emu_AvailableTaskTrailer->StartZone;
|
||||
|
||||
__emu_Ptr += sizeof(AvailableTaskTrailer_Struct);
|
||||
__eq_ptr += sizeof(structs::AvailableTaskTrailer_Struct);
|
||||
|
||||
strcpy(__eq_ptr, __emu_Ptr); // Unknown string
|
||||
|
||||
__emu_Ptr += strlen(__emu_Ptr) + 1;
|
||||
__eq_ptr += strlen(__eq_ptr) + 1;
|
||||
}
|
||||
|
||||
delete[] __emu_buffer;
|
||||
dest->FastQueuePacket(&in, ack_req);
|
||||
}
|
||||
|
||||
ENCODE(OP_PetBuffWindow)
|
||||
{
|
||||
EQApplicationPacket *in = *p;
|
||||
|
||||
@@ -72,7 +72,6 @@ E(OP_MoveItem)
|
||||
E(OP_NewSpawn)
|
||||
E(OP_NewZone)
|
||||
E(OP_OnLevelMessage)
|
||||
E(OP_OpenNewTasksWindow)
|
||||
E(OP_PetBuffWindow)
|
||||
E(OP_PlayerProfile)
|
||||
E(OP_RaidJoin)
|
||||
|
||||
Reference in New Issue
Block a user