public void AddDemandItem(SMissionBonusItem pDemandItem)
 {
     if (m_yDemandCount < SCRIPT_COMMAND.MAX_MISSION_DEMAND_COUNT)
     {
         m_aDemandItem[m_yDemandCount] = pDemandItem;
         m_yDemandCount++;
     }
 }
    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 bool Read(ref NetInputBuffer iStream)
    {
        if (iStream.ReadUint(ref m_idNPC) != sizeof(uint))
        {
            return(false);
        }
        if (iStream.ReadInt(ref m_idScript) != sizeof(int))
        {
            return(false);
        }
        if (iStream.ReadInt(ref m_idMission) != sizeof(int))
        {
            return(false);
        }
        if (iStream.ReadInt(ref m_bDone) != sizeof(int))
        {
            return(false);
        }
        if (iStream.ReadByte(ref m_yTextCount) != sizeof(byte))
        {
            return(false);
        }

        for (int i = 0; i < m_yTextCount; i++)
        {
            m_aText[i] = new ScriptString();
            m_aText[i].Read(ref iStream);
        }

        if (iStream.ReadByte(ref m_yDemandCount) != sizeof(byte))
        {
            return(false);
        }

        for (int i = 0; i < m_yDemandCount; i++)
        {
            m_aDemandItem[i] = new SMissionBonusItem();
            m_aDemandItem[i].Read(ref iStream);
        }

        return(true);
    }