public bool Read(ref NetInputBuffer iStream)
    {
        int nType = Convert.ToInt32(m_nType);

        if (iStream.ReadInt(ref nType) != sizeof(int))
        {
            return(false);
        }
        m_nType = (ENUM_MISSION_BONUS_TYPE)nType;

        switch (m_nType)
        {
        case ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_MONEY:
            if (iStream.ReadUint(ref m_uMoney) != sizeof(uint))
            {
                return(false);
            }
            break;

        case ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_ITEM:
            m_ItemBonus = new SMissionBonusItem();
            if (!m_ItemBonus.Read(ref iStream))
            {
                return(false);
            }
            break;

        case ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_ITEM_RAND:
            break;

        case ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_ITEM_RADIO:
            m_ItemBonus = new SMissionBonusItem();
            if (!m_ItemBonus.Read(ref iStream))
            {
                return(false);
            }
            break;

        case ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_EXP:
            if (iStream.ReadUint(ref m_uExp) != sizeof(uint))
            {
                return(false);
            }
            break;

        default:
            break;
        }

        return(true);
    }
 public void Reset()
 {
     m_nType = ENUM_MISSION_BONUS_TYPE.MISSION_BONUS_TYPE_INVALID;
 }