refactor: Vendor inventory loading

Implement proper delta compression
dynamically determine multicostitems and standard cost items
Quatantine max's custom code
This commit is contained in:
Aaron Kimbre
2023-07-25 21:35:45 -05:00
parent 304af7922a
commit 91df00a242
3 changed files with 133 additions and 165 deletions

View File

@@ -1286,21 +1286,21 @@ void GameMessages::SendVendorStatusUpdate(Entity* entity, const SystemAddress& s
VendorComponent* vendor = static_cast<VendorComponent*>(entity->GetComponent(eReplicaComponentType::VENDOR));
if (!vendor) return;
std::map<LOT, int> vendorItems = vendor->GetInventory();
auto vendorItems = vendor->GetInventory();
bitStream.Write(entity->GetObjectID());
bitStream.Write(eGameMessageType::VENDOR_STATUS_UPDATE);
bitStream.Write(bUpdateOnly);
bitStream.Write(static_cast<uint32_t>(vendorItems.size()));
bitStream.Write<uint32_t>(vendorItems.size());
for (std::pair<LOT, int> item : vendorItems) {
bitStream.Write(static_cast<int>(item.first));
bitStream.Write(static_cast<int>(item.second));
for (auto item : vendorItems) {
bitStream.Write(item.lot);
bitStream.Write(item.sortPriority);
}
if (sysAddr == UNASSIGNED_SYSTEM_ADDRESS) SEND_PACKET_BROADCAST
SEND_PACKET;
if (sysAddr == UNASSIGNED_SYSTEM_ADDRESS) SEND_PACKET_BROADCAST;
SEND_PACKET;
}
void GameMessages::SendVendorTransactionResult(Entity* entity, const SystemAddress& sysAddr) {