-Add function for converting laurion links (non functional)

-Fix move items on cursor
-Fill out more of the filters even if we don't use them atm
This commit is contained in:
KimLS 2024-12-03 19:51:37 -08:00
parent 32a1d7c43e
commit 352f52e65d
2 changed files with 71 additions and 8 deletions

View File

@ -762,6 +762,46 @@ typedef enum {
FilterStrikethrough = 26, //0=show, 1=hide // RoF2 Confirmed
FilterStuns = 27, //0=show, 1=hide // RoF2 Confirmed
FilterBardSongsOnPets = 28, //0=show, 1=hide // RoF2 Confirmed
FilterSwarmPetDeath = 29,
FilterFellowshipChat = 30,
FilterMercenaryMessages = 31,
FilterSpam = 32,
FilterAchievements = 33,
FilterPvPMessages = 34,
FilterSpellNameInCast = 35,
FilterRandomMine = 36,
FilterRandomGroupRaid = 37,
FilterRandomOthers = 38,
FilterEnvironmentalDamage = 39,
FilterMessages = 40,
FilterOverwriteDetrimental = 41,
FilterOverwriteBeneficial = 42,
FilterCantUseCommand = 43,
FilterCombatAbilityReuse = 44,
FilterAAAbilityReuse = 45,
FilterProcBeginCasting = 46,
FilterDestroyedItems = 47,
FilterYourAuras = 48,
FilterOtherAuras = 49,
FilterYourHeals = 50,
FilterOtherHeals = 51,
FilterYourDoTs = 52,
FilterOtherDoTs = 53,
FilterOtherDirectDamage = 54,
FilterSpellEmotes = 55,
FilterFactionMessages = 56,
FilterTauntMessages = 57,
FilterYourDisciplines = 58,
FilterOtherDisplines = 59,
FilterAchievementsOthers = 60,
FilterRaidVictory = 61,
FilterOtherDirectDamageCrits = 62,
FilterDoTYoursCritical = 63,
FilterDoTOthersCritical = 64,
FilterDoTDamageTaken = 65,
FilterHealsReceived = 66,
FilterHealsYoursCritical = 67,
FilterHealsOthersCritical = 68,
_FilterCount
} eqFilterType;

View File

@ -51,6 +51,10 @@ namespace Laurion
void SerializeItem(SerializeBuffer &buffer, const EQ::ItemInstance* inst, int16 slot_id, uint8 depth, ItemPacketType packet_type);
// message link converters
static inline void ServerToLaurionConvertLinks(std::string& message_out, const std::string& message_in);
static inline void LaurionToServerConvertLinks(std::string& message_out, const std::string& message_in);
//SpawnAppearance
static inline uint32 ServerToLaurionSpawnAppearanceType(uint32 server_type);
static inline uint32 LaurionToServerSpawnAppearanceType(uint32 laurion_type);
@ -2464,8 +2468,8 @@ namespace Laurion
unsigned char* __emu_buffer = in->pBuffer;
std::string old_message = emu->message;
std::string new_message = old_message;
//ServerToRoF2SayLink(new_message, old_message);
std::string new_message;
ServerToLaurionConvertLinks(new_message, old_message);
in->size = strlen(emu->sender) + strlen(emu->targetname) + new_message.length() + 43;
@ -2520,8 +2524,7 @@ namespace Laurion
in->ReadString(old_message);
//ServerToRoF2SayLink(new_message, old_message);
new_message = old_message;
ServerToLaurionConvertLinks(new_message, old_message);
buf.WriteString(new_message);
@ -2567,7 +2570,9 @@ namespace Laurion
buffer.WriteUInt32(emu->type);
for (int i = 0; i < 9; ++i) {
buffer.WriteLengthString(old_message_array[i]);
std::string new_message;
ServerToLaurionConvertLinks(new_message, old_message_array[i]);
buffer.WriteLengthString(new_message);
}
auto outapp = new EQApplicationPacket(OP_FormattedMessage, buffer.size());
@ -2785,8 +2790,8 @@ namespace Laurion
uint32 Skill = VARSTRUCT_DECODE_TYPE(uint32, InBuffer);
std::string old_message = InBuffer;
std::string new_message = old_message;
//RoF2ToServerSayLink(new_message, old_message);
std::string new_message;
LaurionToServerConvertLinks(new_message, old_message);
__packet->size = sizeof(ChannelMessage_Struct) + new_message.length() + 1;
__packet->pBuffer = new unsigned char[__packet->size];
@ -3648,6 +3653,15 @@ namespace Laurion
buffer.WriteInt32(0); //unsupported atm
}
static inline void ServerToLaurionConvertLinks(std::string& message_out, const std::string& message_in)
{
message_out = message_in;
}
static inline void LaurionToServerConvertLinks(std::string& message_out, const std::string& message_in) {
message_out = message_in;
}
static inline uint32 ServerToLaurionSpawnAppearanceType(uint32 server_type) {
switch (server_type)
{
@ -3941,7 +3955,16 @@ namespace Laurion
case invtype::typePossessions: {
if (laurion_slot.Slot >= invslot::POSSESSIONS_BEGIN && laurion_slot.Slot <= invslot::POSSESSIONS_END) {
if (laurion_slot.SubIndex == invbag::SLOT_INVALID) {
server_slot = laurion_slot.Slot;
if (laurion_slot.Slot == invslot::slotCursor) {
server_slot = EQ::invslot::slotCursor;
}
else if(laurion_slot.Slot == invslot::slotGeneral11 || laurion_slot.Slot == invslot::slotGeneral12)
{
return EQ::invslot::SLOT_INVALID;
}
else {
server_slot = laurion_slot.Slot;
}
}
else if (laurion_slot.SubIndex >= invbag::SLOT_BEGIN && laurion_slot.SubIndex <= invbag::SLOT_END) {