comparison Main.lua @ 143:15ff29752523

Workaround for strange WoW client handling of Micro Dungeons.
author James D. Callahan III <jcallahan@curse.com>
date Tue, 02 Oct 2012 10:58:33 -0500
parents 2c2b7d91ca19
children ba5422e37516
comparison
equal deleted inserted replaced
142:dc02d8eb919d 143:15ff29752523
310 char_db.bg_blacklist = char_db.bg_blacklist or {} 310 char_db.bg_blacklist = char_db.bg_blacklist or {}
311 char_db.bg_blacklist[index] = map_id 311 char_db.bg_blacklist[index] = map_id
312 312
313 if map_id < 0 then 313 if map_id < 0 then
314 empty_count = empty_count + 1 314 empty_count = empty_count + 1
315 empty_count = empty_count + 1
315 end 316 end
316 end 317 end
317 318
318 if empty_count == _G.MAX_BLACKLIST_BATTLEGROUNDS then 319 if empty_count == _G.MAX_BLACKLIST_BATTLEGROUNDS then
319 char_db.bg_blacklist = nil 320 char_db.bg_blacklist = nil
573 return text 574 return text
574 end 575 end
575 end -- do-block 576 end -- do-block
576 577
577 578
578 function WDP:SetCurrentAreaID(event_name) 579 do
579 local map_area_id = _G.GetCurrentMapAreaID() 580 -- MapFileName = MapAreaID
580 _G.SetMapToCurrentZone() 581 local MICRO_DUNGEON_IDS = {
581 582 ShrineofTwoMoons = 903,
582 current_area_id = _G.GetCurrentMapAreaID() 583 ShrineofSevenStars = 905,
583 _G.SetMapByID(map_area_id) 584 }
584 end 585
586 -- Contains a dirty hack due to Blizzard's strange handling of Micro Dungeons; GetMapInfo() will not return correct information
587 -- unless the WorldMapFrame is shown.
588 function WDP:SetCurrentAreaID(event_name)
589 local world_map = _G.WorldMapFrame
590 local map_visible = world_map:IsVisible()
591 local sfx_value = _G.tonumber(_G.GetCVar("Sound_EnableSFX"))
592
593 if not map_visible then
594 _G.SetCVar("Sound_EnableSFX", 0)
595 world_map:Show()
596 end
597 local micro_dungeon_id = MICRO_DUNGEON_IDS[select(5, _G.GetMapInfo())]
598
599 if micro_dungeon_id then
600 current_area_id = micro_dungeon_id
601 else
602 local map_area_id = _G.GetCurrentMapAreaID()
603 _G.SetMapToCurrentZone()
604
605 current_area_id = _G.GetCurrentMapAreaID()
606 _G.SetMapByID(map_area_id)
607 end
608
609 if not map_visible then
610 world_map:Hide()
611 _G.SetCVar("Sound_EnableSFX", sfx_value)
612 end
613 end
614 end -- do-block
585 615
586 616
587 ----------------------------------------------------------------------- 617 -----------------------------------------------------------------------
588 -- Methods. 618 -- Methods.
589 ----------------------------------------------------------------------- 619 -----------------------------------------------------------------------