Back to Home

ESO Lua File v100031

ingame/mail/mailsend_shared.lua

[◄ back to folders ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
ZO_MAIL_EMPTY_SLOT_TEXTURE = "EsoUI/Art/Mail/mail_attachment_empty.dds"
local g_pendingAttachments = nil
local g_pendingGold = nil
function ZO_MailSendShared_AddAttachedItem(attachSlot, slot)
    local bagId, slotIndex, icon, stack = GetQueuedItemAttachmentInfo(attachSlot)
     local soundCategory = GetItemSoundCategory(bagId, slotIndex)
     PlayItemSound(soundCategory, ITEM_SOUND_ACTION_EQUIP)
    
    slot.bagId = bagId
    slot.slotIndex = slotIndex
    slot:SetHidden(false)
    ZO_Inventory_SetupSlot(slot, stack, icon)
end
function ZO_MailSendShared_RemoveAttachedItem(attachSlot, slot)
    local soundCategory = GetItemSoundCategory(slot.bagId, slot.slotIndex)
     PlayItemSound(soundCategory, ITEM_SOUND_ACTION_UNEQUIP)
    
    slot:SetHidden(true)    
    ZO_Inventory_BindSlot(slot, SLOT_TYPE_MAIL_QUEUED_ATTACHMENT, attachSlot)
    ZO_Inventory_SetupSlot(slot, 0, ZO_MAIL_EMPTY_SLOT_TEXTURE)
    
end
    if(g_pendingAttachments == nil) then
        g_pendingAttachments = {}
        for i = 1, MAIL_MAX_ATTACHED_ITEMS do
            local bagId, slotIndex, icon, stack = GetQueuedItemAttachmentInfo(i)
            if(stack > 0) then
                g_pendingAttachments[i] = {
                    bagId = bagId,
                    slotIndex = slotIndex,
                    itemInstanceId = GetItemInstanceId(bagId, slotIndex),
                    stackSize = stack, 
                    icon = icon
                }
                RemoveQueuedItemAttachment(i)
            end
        end
        g_pendingGold = GetQueuedMoneyAttachment()
    end
end
    if(g_pendingAttachments) then
        for attachmentSlot, pendingAttachment in pairs(g_pendingAttachments) do
            local sameItemInSlot = GetItemInstanceId(pendingAttachment.bagId, pendingAttachment.slotIndex) == pendingAttachment.itemInstanceId
            local sameStackSize = GetSlotStackSize(pendingAttachment.bagId, pendingAttachment.slotIndex) == pendingAttachment.stackSize
            if(sameItemInSlot and sameStackSize) then
                QueueItemAttachment(pendingAttachment.bagId, pendingAttachment.slotIndex, attachmentSlot)
            else
                manager.pendingMailChanged = true
            end
        end
        if(g_pendingGold ~= GetQueuedMoneyAttachment()) then
            manager.pendingMailChanged = true
        end
        g_pendingAttachments = nil
        g_pendingGold = nil
    end
end