void EffectValueOrRange::Serialize(ByteStream& stream) const { Flags8 flags; flags.SetBit<0>(m_bRange); flags.SetBit<1>(m_bPercent); stream.Write8(flags.Value()); stream.Write32(static_cast<unsigned int>(m_iValues[0])); if (m_bRange) stream.Write32(static_cast<unsigned int>(m_iValues[1])); }
void AddRemoveObjectMessage::Serialize(ByteStream& stream) const { // list of objects to add stream.Write32(m_vecObjectsToAdd.size()); for (size_t i=0, iMax=m_vecObjectsToAdd.size(); i<iMax; i++) { ATLASSERT(typeid(Mobile) == typeid(*m_vecObjectsToAdd[i])); m_vecObjectsToAdd[i]->Serialize(stream); } // list of objects to remove stream.Write32(m_vecObjectsToRemove.size()); for (size_t i=0, iMax=m_vecObjectsToRemove.size(); i<iMax; i++) stream.WriteUuid(m_vecObjectsToRemove[i]); }
void DamageHealSpellEffectBase::Serialize(ByteStream& stream) const { BaseClass::Serialize(stream); Flags8 flags; flags.SetBit<0>(m_bIsInstant); flags.SetBit<1>(m_uiDuration != 0); flags.SetBit<2>(m_uiTickTime != 0); stream.Write8(flags.Value()); if (m_uiDuration != 0) stream.Write32(m_uiDuration); if (m_uiTickTime != 0) stream.Write32(m_uiTickTime); }
void ItemTemplate::Serialize(ByteStream& stream) const { stream.Write32(m_uiTemplateId); stream.Write8(static_cast<unsigned char>(m_enItemType) & 0xff); stream.Write8(static_cast<unsigned char>(m_enEquipSlotType) & 0xff); // TODO switch (m_enItemType) { case itemTypeWeapon: m_spWeaponItemInfo->Serialize(stream); break; case itemTypeArmor: m_spArmorItemInfo->Serialize(stream); break; case itemTypeConsumable:m_spConsumableItemInfo->Serialize(stream); break; case itemTypeUsable: m_spUsableItemInfo->Serialize(stream); break; case itemTypeQuest: m_spQuestItemInfo->Serialize(stream); break; } }
/// serialize action by putting bytes to stream virtual void Serialize(ByteStream& stream) const override { Action::Serialize(stream); stream.Write32(m_uiHealthPoints); }