コード例 #1
0
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]));
}
コード例 #2
0
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]);
}
コード例 #3
0
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);
}
コード例 #4
0
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;
   }
}
コード例 #5
0
 /// serialize action by putting bytes to stream
 virtual void Serialize(ByteStream& stream) const override
 {
    Action::Serialize(stream);
    stream.Write32(m_uiHealthPoints);
 }