From c1e308cd78051ccd8f3c2679675670034c81d2ab Mon Sep 17 00:00:00 2001 From: d1str4ught <> Date: Thu, 28 Aug 2025 22:42:00 +0200 Subject: [PATCH] item_set and item_del packets normalized --- src/game/char_item.cpp | 14 ++++---------- src/game/packet.h | 36 +++++++++++++----------------------- src/game/safebox.cpp | 4 ++-- 3 files changed, 19 insertions(+), 35 deletions(-) diff --git a/src/game/char_item.cpp b/src/game/char_item.cpp index dbe9df5..adc8d55 100644 --- a/src/game/char_item.cpp +++ b/src/game/char_item.cpp @@ -404,7 +404,7 @@ void CHARACTER::SetItem(TItemPos Cell, LPITEM pItem) { TPacketGCItemSet pack; pack.header = HEADER_GC_ITEM_SET; - pack.Cell = Cell; + pack.pos = Cell; pack.count = pItem->GetCount(); pack.vnum = pItem->GetVnum(); @@ -412,7 +412,6 @@ void CHARACTER::SetItem(TItemPos Cell, LPITEM pItem) pack.anti_flags = pItem->GetAntiFlag(); pack.highlight = (Cell.window_type == DRAGON_SOUL_INVENTORY); - thecore_memcpy(pack.alSockets, pItem->GetSockets(), sizeof(pack.alSockets)); thecore_memcpy(pack.aAttr, pItem->GetAttributes(), sizeof(pack.aAttr)); @@ -420,15 +419,10 @@ void CHARACTER::SetItem(TItemPos Cell, LPITEM pItem) } else { - TPacketGCItemDelDeprecated pack; + TPacketGCItemDel pack; pack.header = HEADER_GC_ITEM_DEL; - pack.Cell = Cell; - pack.count = 0; - pack.vnum = 0; - memset(pack.alSockets, 0, sizeof(pack.alSockets)); - memset(pack.aAttr, 0, sizeof(pack.aAttr)); - - GetDesc()->Packet(&pack, sizeof(TPacketGCItemDelDeprecated)); + pack.pos = Cell; + GetDesc()->Packet(&pack, sizeof(TPacketGCItemDel)); } } diff --git a/src/game/packet.h b/src/game/packet.h index 51430de..2a56083 100644 --- a/src/game/packet.h +++ b/src/game/packet.h @@ -1096,35 +1096,25 @@ typedef struct packet_dead uint32_t vid; } TPacketGCDead; -struct TPacketGCItemDelDeprecated +typedef struct packet_del_item { - uint8_t header; - TItemPos Cell; - uint32_t vnum; - uint8_t count; - int32_t alSockets[ITEM_SOCKET_MAX_NUM]; - TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM]; -}; + uint8_t header; + TItemPos pos; +} TPacketGCItemDel; typedef struct packet_item_set { - uint8_t header; - TItemPos Cell; - uint32_t vnum; - uint8_t count; - uint32_t flags; - uint32_t anti_flags; - bool highlight; - int32_t alSockets[ITEM_SOCKET_MAX_NUM]; - TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM]; + uint8_t header; + TItemPos pos; + uint32_t vnum; + uint8_t count; + uint32_t flags; + uint32_t anti_flags; + uint8_t highlight; + int32_t alSockets[ITEM_SOCKET_MAX_NUM]; + TPlayerItemAttribute aAttr[ITEM_ATTRIBUTE_MAX_NUM]; } TPacketGCItemSet; -typedef struct packet_item_del -{ - uint8_t header; - uint8_t pos; -} TPacketGCItemDel; - struct packet_item_use { uint8_t header; diff --git a/src/game/safebox.cpp b/src/game/safebox.cpp index b71a741..e71c589 100644 --- a/src/game/safebox.cpp +++ b/src/game/safebox.cpp @@ -71,7 +71,7 @@ bool CSafebox::Add(DWORD dwPos, LPITEM pkItem) TPacketGCItemSet pack; pack.header = m_bWindowMode == SAFEBOX ? HEADER_GC_SAFEBOX_SET : HEADER_GC_MALL_SET; - pack.Cell = TItemPos(m_bWindowMode, dwPos); + pack.pos = TItemPos(m_bWindowMode, dwPos); pack.vnum = pkItem->GetVnum(); pack.count = pkItem->GetCount(); pack.flags = pkItem->GetFlag(); @@ -111,7 +111,7 @@ LPITEM CSafebox::Remove(DWORD dwPos) TPacketGCItemDel pack; pack.header = m_bWindowMode == SAFEBOX ? HEADER_GC_SAFEBOX_DEL : HEADER_GC_MALL_DEL; - pack.pos = dwPos; + pack.pos = TItemPos(m_bWindowMode, dwPos); m_pkChrOwner->GetDesc()->Packet(&pack, sizeof(pack)); sys_log(1, "SAFEBOX: REMOVE %s %s count %d", m_pkChrOwner->GetName(), pkItem->GetName(), pkItem->GetCount());