mirror of
https://github.com/EQEmu/Server.git
synced 2026-09-02 08:26:36 +00:00
OP_MoveItem encode/decode for RoF2, disabled other patches for now (until i get rof2 packets and mechanics working well enough to go back and fix those)
This commit is contained in:
@@ -1556,7 +1556,7 @@ struct DeleteItem_Struct {
|
||||
/*0012*/
|
||||
};
|
||||
|
||||
struct MoveItem_Struct
|
||||
struct MoveItemOld_Struct
|
||||
{
|
||||
/*0000*/ uint32 from_slot;
|
||||
/*0004*/ uint32 to_slot;
|
||||
@@ -1564,6 +1564,19 @@ struct MoveItem_Struct
|
||||
/*0012*/
|
||||
};
|
||||
|
||||
struct MoveItem_Struct
|
||||
{
|
||||
int16 from_type;
|
||||
int16 from_slot;
|
||||
int16 from_bag_slot;
|
||||
int16 from_aug_slot;
|
||||
int16 to_type;
|
||||
int16 to_slot;
|
||||
int16 to_bag_slot;
|
||||
int16 to_aug_slot;
|
||||
uint32 number_in_stack;
|
||||
};
|
||||
|
||||
// both MoveItem_Struct/DeleteItem_Struct server structures will be changing to a structure-based slot format..this will
|
||||
// be used for handling SoF/SoD/etc... time stamps sent using the MoveItem_Struct format. (nothing will be done with this
|
||||
// info at the moment..but, it is forwarded on to the server for handling/future use)
|
||||
|
||||
+57
-1
@@ -61,6 +61,8 @@ bool EQEmu::Inventory::Put(const InventorySlot &slot, std::shared_ptr<ItemInstan
|
||||
impl_->containers_.insert(std::pair<int, ItemContainer>(slot.type_, ItemContainer()));
|
||||
}
|
||||
|
||||
//Verify item can be put into the slot requested
|
||||
|
||||
auto &container = impl_->containers_[slot.type_];
|
||||
if(slot.bag_index_ > -1) {
|
||||
auto item = container.Get(slot.slot_);
|
||||
@@ -92,10 +94,64 @@ bool EQEmu::Inventory::Put(const InventorySlot &slot, std::shared_ptr<ItemInstan
|
||||
return false;
|
||||
}
|
||||
|
||||
bool EQEmu::Inventory::Swap(const InventorySlot &src, const InventorySlot &dest) {
|
||||
bool EQEmu::Inventory::Swap(const InventorySlot &src, const InventorySlot &dest, int charges) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int EQEmu::Inventory::CalcMaterialFromSlot(const InventorySlot &slot) {
|
||||
if(slot.type_ != 0)
|
||||
return _MaterialInvalid;
|
||||
|
||||
switch(slot.slot_) {
|
||||
case PersonalSlotHead:
|
||||
return MaterialHead;
|
||||
case PersonalSlotChest:
|
||||
return MaterialChest;
|
||||
case PersonalSlotArms:
|
||||
return MaterialArms;
|
||||
case PersonalSlotWrist1:
|
||||
return MaterialWrist;
|
||||
case PersonalSlotHands:
|
||||
return MaterialHands;
|
||||
case PersonalSlotLegs:
|
||||
return MaterialLegs;
|
||||
case PersonalSlotFeet:
|
||||
return MaterialFeet;
|
||||
case PersonalSlotPrimary:
|
||||
return MaterialPrimary;
|
||||
case PersonalSlotSecondary:
|
||||
return MaterialSecondary;
|
||||
default:
|
||||
return _MaterialInvalid;
|
||||
}
|
||||
}
|
||||
|
||||
EQEmu::InventorySlot EQEmu::Inventory::CalcSlotFromMaterial(int material) {
|
||||
switch(material)
|
||||
{
|
||||
case MaterialHead:
|
||||
return EQEmu::InventorySlot(InvTypePersonal, PersonalSlotHead);
|
||||
case MaterialChest:
|
||||
return EQEmu::InventorySlot(InvTypePersonal, PersonalSlotChest);
|
||||
case MaterialArms:
|
||||
return EQEmu::InventorySlot(InvTypePersonal, PersonalSlotArms);
|
||||
case MaterialWrist:
|
||||
return EQEmu::InventorySlot(InvTypePersonal, PersonalSlotWrist1);
|
||||
case MaterialHands:
|
||||
return EQEmu::InventorySlot(InvTypePersonal, PersonalSlotHands);
|
||||
case MaterialLegs:
|
||||
return EQEmu::InventorySlot(InvTypePersonal, PersonalSlotLegs);
|
||||
case MaterialFeet:
|
||||
return EQEmu::InventorySlot(InvTypePersonal, PersonalSlotFeet);
|
||||
case MaterialPrimary:
|
||||
return EQEmu::InventorySlot(InvTypePersonal, PersonalSlotPrimary);
|
||||
case MaterialSecondary:
|
||||
return EQEmu::InventorySlot(InvTypePersonal, PersonalSlotSecondary);
|
||||
default:
|
||||
return EQEmu::InventorySlot(-1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
bool EQEmu::Inventory::Serialize(MemoryBuffer &buf) {
|
||||
buf.SetWritePosition(0);
|
||||
buf.SetReadPosition(0);
|
||||
|
||||
+42
-1
@@ -51,6 +51,44 @@ namespace EQEmu
|
||||
InvTypeGuildTribute
|
||||
};
|
||||
|
||||
enum PersonaInventorylSlot : int
|
||||
{
|
||||
PersonalSlotCharm = 0,
|
||||
PersonalSlotEar1,
|
||||
PersonalSlotHead,
|
||||
PersonalSlotFace,
|
||||
PersonalSlotEar2,
|
||||
PersonalSlotNeck,
|
||||
PersonalSlotShoulders,
|
||||
PersonalSlotArms,
|
||||
PersonalSlotBack,
|
||||
PersonalSlotWrist1,
|
||||
PersonalSlotWrist2,
|
||||
PersonalSlotRange,
|
||||
PersonalSlotHands,
|
||||
PersonalSlotPrimary,
|
||||
PersonalSlotSecondary,
|
||||
PersonalSlotFinger1,
|
||||
PersonalSlotFinger2,
|
||||
PersonalSlotChest,
|
||||
PersonalSlotLegs,
|
||||
PersonalSlotFeet,
|
||||
PersonalSlotWaist,
|
||||
PersonalSlotPowerSource,
|
||||
PersonalSlotAmmo,
|
||||
PersonalSlotGeneral1,
|
||||
PersonalSlotGeneral2,
|
||||
PersonalSlotGeneral3,
|
||||
PersonalSlotGeneral4,
|
||||
PersonalSlotGeneral5,
|
||||
PersonalSlotGeneral6,
|
||||
PersonalSlotGeneral7,
|
||||
PersonalSlotGeneral8,
|
||||
PersonalSlotGeneral9,
|
||||
PersonalSlotGeneral10,
|
||||
PersonalSlotCursor
|
||||
};
|
||||
|
||||
class Inventory
|
||||
{
|
||||
public:
|
||||
@@ -59,8 +97,11 @@ namespace EQEmu
|
||||
|
||||
std::shared_ptr<ItemInstance> Get(const InventorySlot &slot);
|
||||
bool Put(const InventorySlot &slot, std::shared_ptr<ItemInstance> inst);
|
||||
bool Swap(const InventorySlot &src, const InventorySlot &dest);
|
||||
bool Swap(const InventorySlot &src, const InventorySlot &dest, int charges);
|
||||
|
||||
//utility
|
||||
static int CalcMaterialFromSlot(const InventorySlot &slot);
|
||||
static InventorySlot CalcSlotFromMaterial(int material);
|
||||
bool Serialize(MemoryBuffer &buf);
|
||||
private:
|
||||
struct impl;
|
||||
|
||||
@@ -192,14 +192,56 @@ void EQEmu::ItemInstance::SetCustomData(const std::string &custom_data) {
|
||||
impl_->custom_data_ = custom_data;
|
||||
}
|
||||
|
||||
uint32 EQEmu::ItemInstance::GetOrnamentIDFile() {
|
||||
return impl_->ornament_idfile_;
|
||||
}
|
||||
|
||||
uint32 EQEmu::ItemInstance::GetOrnamentIDFile() const {
|
||||
return impl_->ornament_idfile_;
|
||||
}
|
||||
|
||||
void EQEmu::ItemInstance::SetOrnamentIDFile(const uint32 ornament_idfile) {
|
||||
impl_->ornament_idfile_ = ornament_idfile;
|
||||
}
|
||||
|
||||
uint32 EQEmu::ItemInstance::GetOrnamentIcon() {
|
||||
return impl_->ornament_icon_;
|
||||
}
|
||||
|
||||
uint32 EQEmu::ItemInstance::GetOrnamentIcon() const {
|
||||
return impl_->ornament_icon_;
|
||||
}
|
||||
|
||||
void EQEmu::ItemInstance::SetOrnamentIcon(const uint32 ornament_icon) {
|
||||
impl_->ornament_icon_ = ornament_icon;
|
||||
}
|
||||
|
||||
uint32 EQEmu::ItemInstance::GetOrnamentHeroModel(int material_slot) {
|
||||
uint32 hero_model = 0;
|
||||
if(impl_->ornament_hero_model_ > 0)
|
||||
{
|
||||
hero_model = impl_->ornament_hero_model_;
|
||||
if(material_slot >= 0)
|
||||
{
|
||||
hero_model = (impl_->ornament_hero_model_ * 100) + material_slot;
|
||||
}
|
||||
}
|
||||
return hero_model;
|
||||
}
|
||||
|
||||
uint32 EQEmu::ItemInstance::GetOrnamentHeroModel(int material_slot) const {
|
||||
uint32 hero_model = 0;
|
||||
if(impl_->ornament_hero_model_ > 0)
|
||||
{
|
||||
hero_model = impl_->ornament_hero_model_;
|
||||
if(material_slot >= 0)
|
||||
{
|
||||
hero_model = (impl_->ornament_hero_model_ * 100) + material_slot;
|
||||
}
|
||||
}
|
||||
return hero_model;
|
||||
}
|
||||
|
||||
void EQEmu::ItemInstance::SetOrnamentHeroModel(const uint32 ornament_hero_model) {
|
||||
impl_->ornament_hero_model_ = ornament_hero_model;
|
||||
}
|
||||
|
||||
@@ -53,8 +53,17 @@ namespace EQEmu
|
||||
void SetAttuned(const bool attuned);
|
||||
|
||||
void SetCustomData(const std::string &custom_data);
|
||||
|
||||
uint32 GetOrnamentIDFile();
|
||||
uint32 GetOrnamentIDFile() const;
|
||||
void SetOrnamentIDFile(const uint32 ornament_idfile);
|
||||
|
||||
uint32 GetOrnamentIcon();
|
||||
uint32 GetOrnamentIcon() const;
|
||||
void SetOrnamentIcon(const uint32 ornament_icon);
|
||||
|
||||
uint32 GetOrnamentHeroModel(int material_slot);
|
||||
uint32 GetOrnamentHeroModel(int material_slot) const;
|
||||
void SetOrnamentHeroModel(const uint32 ornament_hero_model);
|
||||
|
||||
const char* GetTrackingID();
|
||||
|
||||
+26
-10
@@ -32,20 +32,30 @@ EQEmu::MemoryBuffer::MemoryBuffer(const MemoryBuffer &other) {
|
||||
}
|
||||
|
||||
EQEmu::MemoryBuffer::MemoryBuffer(MemoryBuffer &&other) {
|
||||
buffer_ = other.buffer_;
|
||||
size_ = other.size_;
|
||||
capacity_ = other.capacity_;
|
||||
write_pos_ = other.write_pos_;
|
||||
read_pos_ = other.read_pos_;
|
||||
uchar *tbuf = other.buffer_;
|
||||
size_t tsz = other.size_;
|
||||
size_t tcapacity = other.capacity_;
|
||||
size_t twrite_pos = other.write_pos_;
|
||||
size_t tread_pos = other.read_pos_;
|
||||
|
||||
other.buffer_ = nullptr;
|
||||
other.size_ = 0;
|
||||
other.capacity_ = 0;
|
||||
other.read_pos_ = 0;
|
||||
other.write_pos_ = 0;
|
||||
|
||||
buffer_ = tbuf;
|
||||
size_ = tsz;
|
||||
capacity_ = tcapacity;
|
||||
write_pos_ = twrite_pos;
|
||||
read_pos_ = tread_pos;
|
||||
}
|
||||
|
||||
EQEmu::MemoryBuffer& EQEmu::MemoryBuffer::operator=(const MemoryBuffer &other) {
|
||||
if(buffer_) {
|
||||
delete[] buffer_;
|
||||
}
|
||||
|
||||
if(other.capacity_) {
|
||||
buffer_ = new uchar[other.capacity_];
|
||||
memcpy(buffer_, other.buffer_, other.capacity_);
|
||||
@@ -62,17 +72,23 @@ EQEmu::MemoryBuffer& EQEmu::MemoryBuffer::operator=(const MemoryBuffer &other) {
|
||||
}
|
||||
|
||||
EQEmu::MemoryBuffer& EQEmu::MemoryBuffer::operator=(MemoryBuffer &&other) {
|
||||
buffer_ = other.buffer_;
|
||||
size_ = other.size_;
|
||||
capacity_ = other.capacity_;
|
||||
write_pos_ = other.write_pos_;
|
||||
read_pos_ = other.read_pos_;
|
||||
uchar *tbuf = other.buffer_;
|
||||
size_t tsz = other.size_;
|
||||
size_t tcapacity = other.capacity_;
|
||||
size_t twrite_pos = other.write_pos_;
|
||||
size_t tread_pos = other.read_pos_;
|
||||
|
||||
other.buffer_ = nullptr;
|
||||
other.size_ = 0;
|
||||
other.capacity_ = 0;
|
||||
other.read_pos_ = 0;
|
||||
other.write_pos_ = 0;
|
||||
|
||||
buffer_ = tbuf;
|
||||
size_ = tsz;
|
||||
capacity_ = tcapacity;
|
||||
write_pos_ = twrite_pos;
|
||||
read_pos_ = tread_pos;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
+10
-10
@@ -10,19 +10,19 @@
|
||||
#include "rof2.h"
|
||||
|
||||
void RegisterAllPatches(EQStreamIdentifier &into) {
|
||||
Titanium::Register(into);
|
||||
SoF::Register(into);
|
||||
SoD::Register(into);
|
||||
UF::Register(into);
|
||||
RoF::Register(into);
|
||||
//Titanium::Register(into);
|
||||
//SoF::Register(into);
|
||||
//SoD::Register(into);
|
||||
//UF::Register(into);
|
||||
//RoF::Register(into);
|
||||
RoF2::Register(into);
|
||||
}
|
||||
|
||||
void ReloadAllPatches() {
|
||||
Titanium::Reload();
|
||||
SoF::Reload();
|
||||
SoD::Reload();
|
||||
UF::Reload();
|
||||
RoF::Reload();
|
||||
//Titanium::Reload();
|
||||
//SoF::Reload();
|
||||
//SoD::Reload();
|
||||
//UF::Reload();
|
||||
//RoF::Reload();
|
||||
RoF2::Reload();
|
||||
}
|
||||
|
||||
+18
-18
@@ -1707,14 +1707,14 @@ namespace RoF
|
||||
|
||||
ENCODE(OP_MoveItem)
|
||||
{
|
||||
ENCODE_LENGTH_EXACT(MoveItem_Struct);
|
||||
SETUP_DIRECT_ENCODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
|
||||
eq->from_slot = ServerToRoFSlot(emu->from_slot);
|
||||
eq->to_slot = ServerToRoFSlot(emu->to_slot);
|
||||
OUT(number_in_stack);
|
||||
|
||||
FINISH_ENCODE();
|
||||
//ENCODE_LENGTH_EXACT(MoveItem_Struct);
|
||||
//SETUP_DIRECT_ENCODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
//
|
||||
//eq->from_slot = ServerToRoFSlot(emu->from_slot);
|
||||
//eq->to_slot = ServerToRoFSlot(emu->to_slot);
|
||||
//OUT(number_in_stack);
|
||||
//
|
||||
//FINISH_ENCODE();
|
||||
}
|
||||
|
||||
ENCODE(OP_NewSpawn) { ENCODE_FORWARD(OP_ZoneSpawns); }
|
||||
@@ -4684,16 +4684,16 @@ namespace RoF
|
||||
|
||||
DECODE(OP_MoveItem)
|
||||
{
|
||||
DECODE_LENGTH_EXACT(structs::MoveItem_Struct);
|
||||
SETUP_DIRECT_DECODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
|
||||
//Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Moved item from %u to %u", eq->from_slot.MainSlot, eq->to_slot.MainSlot);
|
||||
Log.Out(Logs::General, Logs::Netcode, "[RoF] MoveItem SlotType from %i to %i, MainSlot from %i to %i, SubSlot from %i to %i, AugSlot from %i to %i, Unknown01 from %i to %i, Number %u", eq->from_slot.SlotType, eq->to_slot.SlotType, eq->from_slot.MainSlot, eq->to_slot.MainSlot, eq->from_slot.SubSlot, eq->to_slot.SubSlot, eq->from_slot.AugSlot, eq->to_slot.AugSlot, eq->from_slot.Unknown01, eq->to_slot.Unknown01, eq->number_in_stack);
|
||||
emu->from_slot = RoFToServerSlot(eq->from_slot);
|
||||
emu->to_slot = RoFToServerSlot(eq->to_slot);
|
||||
IN(number_in_stack);
|
||||
|
||||
FINISH_DIRECT_DECODE();
|
||||
//DECODE_LENGTH_EXACT(structs::MoveItem_Struct);
|
||||
//SETUP_DIRECT_DECODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
//
|
||||
////Log.LogDebugType(Logs::General, Logs::Netcode, "[ERROR] Moved item from %u to %u", eq->from_slot.MainSlot, eq->to_slot.MainSlot);
|
||||
//Log.Out(Logs::General, Logs::Netcode, "[RoF] MoveItem SlotType from %i to %i, MainSlot from %i to %i, SubSlot from %i to %i, AugSlot from %i to %i, Unknown01 from %i to %i, Number %u", eq->from_slot.SlotType, eq->to_slot.SlotType, eq->from_slot.MainSlot, eq->to_slot.MainSlot, eq->from_slot.SubSlot, eq->to_slot.SubSlot, eq->from_slot.AugSlot, eq->to_slot.AugSlot, eq->from_slot.Unknown01, eq->to_slot.Unknown01, eq->number_in_stack);
|
||||
//emu->from_slot = RoFToServerSlot(eq->from_slot);
|
||||
//emu->to_slot = RoFToServerSlot(eq->to_slot);
|
||||
//IN(number_in_stack);
|
||||
//
|
||||
//FINISH_DIRECT_DECODE();
|
||||
}
|
||||
|
||||
DECODE(OP_PetCommands)
|
||||
|
||||
+592
-587
File diff suppressed because it is too large
Load Diff
+18
-18
@@ -1265,14 +1265,14 @@ namespace SoD
|
||||
|
||||
ENCODE(OP_MoveItem)
|
||||
{
|
||||
ENCODE_LENGTH_EXACT(MoveItem_Struct);
|
||||
SETUP_DIRECT_ENCODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
|
||||
eq->from_slot = ServerToSoDSlot(emu->from_slot);
|
||||
eq->to_slot = ServerToSoDSlot(emu->to_slot);
|
||||
OUT(number_in_stack);
|
||||
|
||||
FINISH_ENCODE();
|
||||
//ENCODE_LENGTH_EXACT(MoveItem_Struct);
|
||||
//SETUP_DIRECT_ENCODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
//
|
||||
//eq->from_slot = ServerToSoDSlot(emu->from_slot);
|
||||
//eq->to_slot = ServerToSoDSlot(emu->to_slot);
|
||||
//OUT(number_in_stack);
|
||||
//
|
||||
//FINISH_ENCODE();
|
||||
}
|
||||
|
||||
ENCODE(OP_NewSpawn) { ENCODE_FORWARD(OP_ZoneSpawns); }
|
||||
@@ -3260,16 +3260,16 @@ namespace SoD
|
||||
|
||||
DECODE(OP_MoveItem)
|
||||
{
|
||||
DECODE_LENGTH_EXACT(structs::MoveItem_Struct);
|
||||
SETUP_DIRECT_DECODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
|
||||
Log.Out(Logs::General, Logs::Netcode, "[SoD] Moved item from %u to %u", eq->from_slot, eq->to_slot);
|
||||
|
||||
emu->from_slot = SoDToServerSlot(eq->from_slot);
|
||||
emu->to_slot = SoDToServerSlot(eq->to_slot);
|
||||
IN(number_in_stack);
|
||||
|
||||
FINISH_DIRECT_DECODE();
|
||||
//DECODE_LENGTH_EXACT(structs::MoveItem_Struct);
|
||||
//SETUP_DIRECT_DECODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
//
|
||||
//Log.Out(Logs::General, Logs::Netcode, "[SoD] Moved item from %u to %u", eq->from_slot, eq->to_slot);
|
||||
//
|
||||
//emu->from_slot = SoDToServerSlot(eq->from_slot);
|
||||
//emu->to_slot = SoDToServerSlot(eq->to_slot);
|
||||
//IN(number_in_stack);
|
||||
//
|
||||
//FINISH_DIRECT_DECODE();
|
||||
}
|
||||
|
||||
DECODE(OP_PetCommands)
|
||||
|
||||
+18
-18
@@ -930,14 +930,14 @@ namespace SoF
|
||||
|
||||
ENCODE(OP_MoveItem)
|
||||
{
|
||||
ENCODE_LENGTH_EXACT(MoveItem_Struct);
|
||||
SETUP_DIRECT_ENCODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
|
||||
eq->from_slot = ServerToSoFSlot(emu->from_slot);
|
||||
eq->to_slot = ServerToSoFSlot(emu->to_slot);
|
||||
OUT(number_in_stack);
|
||||
|
||||
FINISH_ENCODE();
|
||||
//ENCODE_LENGTH_EXACT(MoveItem_Struct);
|
||||
//SETUP_DIRECT_ENCODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
//
|
||||
//eq->from_slot = ServerToSoFSlot(emu->from_slot);
|
||||
//eq->to_slot = ServerToSoFSlot(emu->to_slot);
|
||||
//OUT(number_in_stack);
|
||||
//
|
||||
//FINISH_ENCODE();
|
||||
}
|
||||
|
||||
ENCODE(OP_NewSpawn) { ENCODE_FORWARD(OP_ZoneSpawns); }
|
||||
@@ -2598,16 +2598,16 @@ namespace SoF
|
||||
|
||||
DECODE(OP_MoveItem)
|
||||
{
|
||||
DECODE_LENGTH_EXACT(structs::MoveItem_Struct);
|
||||
SETUP_DIRECT_DECODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
|
||||
Log.Out(Logs::General, Logs::Netcode, "[SoF] Moved item from %u to %u", eq->from_slot, eq->to_slot);
|
||||
|
||||
emu->from_slot = SoFToServerSlot(eq->from_slot);
|
||||
emu->to_slot = SoFToServerSlot(eq->to_slot);
|
||||
IN(number_in_stack);
|
||||
|
||||
FINISH_DIRECT_DECODE();
|
||||
//DECODE_LENGTH_EXACT(structs::MoveItem_Struct);
|
||||
//SETUP_DIRECT_DECODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
//
|
||||
//Log.Out(Logs::General, Logs::Netcode, "[SoF] Moved item from %u to %u", eq->from_slot, eq->to_slot);
|
||||
//
|
||||
//emu->from_slot = SoFToServerSlot(eq->from_slot);
|
||||
//emu->to_slot = SoFToServerSlot(eq->to_slot);
|
||||
//IN(number_in_stack);
|
||||
//
|
||||
//FINISH_DIRECT_DECODE();
|
||||
}
|
||||
|
||||
DECODE(OP_PetCommands)
|
||||
|
||||
+18
-18
@@ -778,14 +778,14 @@ namespace Titanium
|
||||
|
||||
ENCODE(OP_MoveItem)
|
||||
{
|
||||
ENCODE_LENGTH_EXACT(MoveItem_Struct);
|
||||
SETUP_DIRECT_ENCODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
|
||||
eq->from_slot = ServerToTitaniumSlot(emu->from_slot);
|
||||
eq->to_slot = ServerToTitaniumSlot(emu->to_slot);
|
||||
OUT(number_in_stack);
|
||||
|
||||
FINISH_ENCODE();
|
||||
//ENCODE_LENGTH_EXACT(MoveItem_Struct);
|
||||
//SETUP_DIRECT_ENCODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
//
|
||||
//eq->from_slot = ServerToTitaniumSlot(emu->from_slot);
|
||||
//eq->to_slot = ServerToTitaniumSlot(emu->to_slot);
|
||||
//OUT(number_in_stack);
|
||||
//
|
||||
//FINISH_ENCODE();
|
||||
}
|
||||
|
||||
ENCODE(OP_NewSpawn) { ENCODE_FORWARD(OP_ZoneSpawns); }
|
||||
@@ -1854,16 +1854,16 @@ namespace Titanium
|
||||
|
||||
DECODE(OP_MoveItem)
|
||||
{
|
||||
DECODE_LENGTH_EXACT(structs::MoveItem_Struct);
|
||||
SETUP_DIRECT_DECODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
|
||||
Log.Out(Logs::General, Logs::Netcode, "[Titanium] Moved item from %u to %u", eq->from_slot, eq->to_slot);
|
||||
|
||||
emu->from_slot = TitaniumToServerSlot(eq->from_slot);
|
||||
emu->to_slot = TitaniumToServerSlot(eq->to_slot);
|
||||
IN(number_in_stack);
|
||||
|
||||
FINISH_DIRECT_DECODE();
|
||||
//DECODE_LENGTH_EXACT(structs::MoveItem_Struct);
|
||||
//SETUP_DIRECT_DECODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
//
|
||||
//Log.Out(Logs::General, Logs::Netcode, "[Titanium] Moved item from %u to %u", eq->from_slot, eq->to_slot);
|
||||
//
|
||||
//emu->from_slot = TitaniumToServerSlot(eq->from_slot);
|
||||
//emu->to_slot = TitaniumToServerSlot(eq->to_slot);
|
||||
//IN(number_in_stack);
|
||||
//
|
||||
//FINISH_DIRECT_DECODE();
|
||||
}
|
||||
|
||||
DECODE(OP_PetCommands)
|
||||
|
||||
+18
-18
@@ -1504,14 +1504,14 @@ namespace UF
|
||||
|
||||
ENCODE(OP_MoveItem)
|
||||
{
|
||||
ENCODE_LENGTH_EXACT(MoveItem_Struct);
|
||||
SETUP_DIRECT_ENCODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
|
||||
eq->from_slot = ServerToUFSlot(emu->from_slot);
|
||||
eq->to_slot = ServerToUFSlot(emu->to_slot);
|
||||
OUT(number_in_stack);
|
||||
|
||||
FINISH_ENCODE();
|
||||
//ENCODE_LENGTH_EXACT(MoveItem_Struct);
|
||||
//SETUP_DIRECT_ENCODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
//
|
||||
//eq->from_slot = ServerToUFSlot(emu->from_slot);
|
||||
//eq->to_slot = ServerToUFSlot(emu->to_slot);
|
||||
//OUT(number_in_stack);
|
||||
//
|
||||
//FINISH_ENCODE();
|
||||
}
|
||||
|
||||
ENCODE(OP_NewSpawn) { ENCODE_FORWARD(OP_ZoneSpawns); }
|
||||
@@ -3582,16 +3582,16 @@ namespace UF
|
||||
|
||||
DECODE(OP_MoveItem)
|
||||
{
|
||||
DECODE_LENGTH_EXACT(structs::MoveItem_Struct);
|
||||
SETUP_DIRECT_DECODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
|
||||
Log.Out(Logs::General, Logs::Netcode, "[UF] Moved item from %u to %u", eq->from_slot, eq->to_slot);
|
||||
|
||||
emu->from_slot = UFToServerSlot(eq->from_slot);
|
||||
emu->to_slot = UFToServerSlot(eq->to_slot);
|
||||
IN(number_in_stack);
|
||||
|
||||
FINISH_DIRECT_DECODE();
|
||||
//DECODE_LENGTH_EXACT(structs::MoveItem_Struct);
|
||||
//SETUP_DIRECT_DECODE(MoveItem_Struct, structs::MoveItem_Struct);
|
||||
//
|
||||
//Log.Out(Logs::General, Logs::Netcode, "[UF] Moved item from %u to %u", eq->from_slot, eq->to_slot);
|
||||
//
|
||||
//emu->from_slot = UFToServerSlot(eq->from_slot);
|
||||
//emu->to_slot = UFToServerSlot(eq->to_slot);
|
||||
//IN(number_in_stack);
|
||||
//
|
||||
//FINISH_DIRECT_DECODE();
|
||||
}
|
||||
|
||||
DECODE(OP_PetCommands)
|
||||
|
||||
Reference in New Issue
Block a user