Mercurial > wow > cyborg-mmo7
comparison RatPageController.lua @ 65:8b8b0bade520
Fixed support for mounts using the new MountJournal and mount IDs (no conversion of old profiles at the moment).
| author | Jerome Vuarand <jerome.vuarand@gmail.com> |
|---|---|
| date | Thu, 23 Oct 2014 13:44:59 +0100 |
| parents | 3b1f85a1cbb1 |
| children | 840c9f09a707 |
comparison
equal
deleted
inserted
replaced
| 64:49ae7191821f | 65:8b8b0bade520 |
|---|---|
| 46 end | 46 end |
| 47 | 47 |
| 48 function RatPageController_methods:GetCursorObject() | 48 function RatPageController_methods:GetCursorObject() |
| 49 local type,a,b,c = GetCursorInfo() | 49 local type,a,b,c = GetCursorInfo() |
| 50 ClearCursor() | 50 ClearCursor() |
| 51 | |
| 52 -- special case for unknown mounts (do it here since we're sure the cursor is free) | |
| 53 if type=='mount' then | |
| 54 local mountID = a | |
| 55 -- if the mount is unknown | |
| 56 if mountID~=0xFFFFFFF and not CyborgMMO_MountMap[mountID] and not CyborgMMO_LocalMountMap[mountID] then | |
| 57 -- build a reverse index of known mount spells | |
| 58 local reverse = {} | |
| 59 for mount,spell in pairs(CyborgMMO_MountMap) do reverse[spell] = mount end | |
| 60 for mount,spell in pairs(CyborgMMO_LocalMountMap) do reverse[spell] = mount end | |
| 61 -- iterate over mount journal | |
| 62 for i=1,C_MountJournal.GetNumMounts() do | |
| 63 local _,spell = C_MountJournal.GetMountInfo(i) | |
| 64 -- if the mount has no known mount ID | |
| 65 if not reverse[spell] then | |
| 66 -- pickup the mount | |
| 67 C_MountJournal.Pickup(i) | |
| 68 -- get the mount id from the cursor | |
| 69 local _,mount = GetCursorInfo() | |
| 70 ClearCursor() | |
| 71 -- save that to avoid spamming the cursor too often | |
| 72 if mount then | |
| 73 CyborgMMO_LocalMountMap[mount] = spell | |
| 74 reverse[spell] = mount | |
| 75 end | |
| 76 end | |
| 77 end | |
| 78 end | |
| 79 end | |
| 80 | |
| 51 if type=='item' then | 81 if type=='item' then |
| 52 local id,link = a,b | 82 local id,link = a,b |
| 53 return CyborgMMO_CreateWowObject('item', id) | 83 return CyborgMMO_CreateWowObject('item', id) |
| 54 elseif type=='spell' then | 84 elseif type=='spell' then |
| 55 local index,book,id = a,b,c | 85 local index,book,id = a,b,c |
| 63 local spellID = select(3, GetCompanionInfo(subtype, index)) | 93 local spellID = select(3, GetCompanionInfo(subtype, index)) |
| 64 return CyborgMMO_CreateWowObject('companion', spellID) | 94 return CyborgMMO_CreateWowObject('companion', spellID) |
| 65 elseif type=='battlepet' then | 95 elseif type=='battlepet' then |
| 66 local petID = a | 96 local petID = a |
| 67 return CyborgMMO_CreateWowObject('battlepet', petID) | 97 return CyborgMMO_CreateWowObject('battlepet', petID) |
| 98 elseif type=='mount' then | |
| 99 local mountID = a | |
| 100 return CyborgMMO_CreateWowObject('mount', mountID) | |
| 68 elseif type=='equipmentset' then | 101 elseif type=='equipmentset' then |
| 69 local name = a | 102 local name = a |
| 70 return CyborgMMO_CreateWowObject('equipmentset', name) | 103 return CyborgMMO_CreateWowObject('equipmentset', name) |
| 71 elseif type=='petaction' then | 104 elseif type=='petaction' then |
| 72 return nil | 105 return nil |
