1.8.57-233-gb5b34ae

Details

  • Filename
    Archy-1.8.57-233-gb5b34ae.zip
  • Uploaded by
  • Uploaded
    Feb 21, 2015
  • Size
    439.99 KB
  • Downloads
    327
  • MD5
    ed0a43883f3c291b3d69edc7dca8fbe8

Supported WoW Retail Versions

  • 6.0.3

Changelog

James D. Callahan III:
    - private.current_continent => private.CurrentContinentID
    - Variable rename for clarity.
    - nearestSite => nearestDigsite, AnnounceNearestSite() => AnnounceNearestDigsite() and miscellaneous related variable renames within functions.
    - lastSite => currentDigsite, because correct grammatical tense matters when one does not wish to be confused.
    - player_position => playerLocation, survey_location => surveyLocation
    - private:ResetPositions() => private:ResetFramePositions() and moved it to Interface.lua
    - Reworked how completion counts are handled.
    - Simplification.
    - PROFILE_DEFAULTS => private.DEFAULT_SETTINGS and moved it to Constants.lua
    - GetIDFromLink() => GetItemIDFromLink(), and moved it to just above the event handlers section.
    - Renamed parameters for CompareAndResetDigCounters() for clarity.
    - Formatting cleanup.
    - Under-the-hood revamp of race artifact storage.
    - Fixed display of completions in the tooltip.
    - Re-added rarity status to the entries in ARTIFACT_TEMPLATES that require it, since that information is only available to the API once an artifact becomes a current project.
    - ARTIFACTS => ARTIFACT_TEMPLATES
    - Updated Steps of Fate Digsite to the new format. 5 to go.
    - Formatting fixes.
    - Pulled the plug on LibBabble-Digsites-3.0.
    - GetArtifactsDelta() now uses a Race object directly, instead of looking it up by ID.
    - Added TooltipMode table, so I can see what the hell is going on in the code; TooltipMode.ArtifactDigsites instead of 1, for example. Also fixed silliness where the mode-change code was looking for a string ("artifact_digsites") instead of a number (1), when everything else was using a number.
    - Readability cleanups.
    - Rewrote GetAchievementProgress() to not only be understandable at a glance, but also to not eat CPU cycles needlessly.
    - Screw it; there are only 6 digsites (out of 318) that are still using LibBabble-Digsites-3.0, so I'm going ahead and disable the name lookups. Maybe they'll get reported, so I can change them to the new format faster.
    - Turned "Auto Hide in Combat" on by default.
    - Split LOREWALKER_ITEMS into LorewalkersLodestone and LorewalkersMap, and gave them meaningful field names; ID => itemID, spell => spellID
    - map => mapID and continent => continentID so anyone looking at the code knows "This is an ID, not an object."
    - id => ID for consistency.
    - Aaaaaand re-added RequestArtifactCompletionHistory() to Race:UpdateCurrentProject(), or else shit goes pear-shaped (related to ticket #461) until I can rework the entire inbred mess.
    - Removed the unnecessary call to RequestArtifactCompletionHistory from Archy:UpdatePlayerPosition().
    - Discovered the cause for ticket #461, and added a TODO comment above the responsible code.
    - I changed my mind: Re-added RequestArtifactCompletionHistory() to Archy:OnEnable(), BEFORE races are initialized, and remove it from Race:UpdateCurrentProject() - this way, we have the data beforehand and it isn't being called several times in a row.
    - Check whether or not a "You can solve" announcement needs to be made five seconds after the first ARTIFACT_HISTORY_READY is fired, so the player is informed almost immediately after the UI loads.
    - Moved clearing of an artifact's announce/ping states to Race:UpdateCurrentProject(), from Archy:ARTIFACT_COMPLETE.
    - Removed call to RequestArtifactCompletionHistory() in Archy:OnEnable() - it's already called in Race:UpdateCurrentProject(), which is called multiple times just beforehand.
    - Tightened logic.
    - Don't announce anything during the loading process.
    - Typo fix.
    - Greatly simplified the "You have solved" announcement logic.
    - Iterate over the Races table and use the race directly, instead of iterating over GetNumArchaeologyRaces() and performing a per-race lookup.
    - Use :ClearWaypoint() instead of :Refresh() with no argument.
    - Removed now-useless function.
    - Updated Schnottz's Landing to the new format. 6 to go.
    - Only update the character's position when moving or on a taxi.
    - Hide the map icon and survey nodes upon creation.
    - Hide the DistanceIndicatorFrame when ARCHAEOLOGY_FIND_COMPLETE fires, instead of when CURRENCY_DISPLAY_UPDATE fires (which only happens after looting).
    - UpdateDistanceIndicator => DistanceIndicatorFrame:Update(), and added DistanceIndicatorFrame:Reset()
    - POI frame rename.
    - Why the hell was lastSite initialized as an empty table? No wonder shit was blowing up in certain cases. Fixes ticket #545.
    - Assign the db.char.digsites.stats table for a specific Digsite as a member of the Digsite object itself, allowing the contents to be updated without several table lookups (and more legible code).
    - When performing a survey, call TomTomHandler:Refresh() without an argument, so the current digsite's waypoint will be removed.
    - Removed redundant code.
    - Removed debug code.
    - Simplified TomTomHandler:Refresh()
    - Attempt at addressing ticket #545
    - Removed hack added in commit 9b71ce4. Commit 2dccb06 was the actual fix.
    - Logic fixes.
Ethan Centaurai:
    - Fixed several errors when logging into Outland with a skill level of 1.
    - Fixed an error when looting fragments inside the Garrison Mines.
James D. Callahan III:
    - Added HasArchaeology() check to UpdateMinimapIcons()
    - Race.artifact => Race.currentProject Race:UpdateArtifact() => Race:UpdateCurrentProject()
    - Assign and directly use the Race on the Digsite, instead of requiring a lookup based on the Digsite template's typeID.
    - Announce/ping logic change so neither will happen if either fragments or required fragments are 0.
    - Map icon fix/cleanup.
    - Updated Overgrown Highmaul Road Digsite to the new format. 7 to go.
    - More minor cleanups, and removed some checks that were put in place to avoid errors from fake digsites (which no longer exist).
    - Cleanups and simplifications.
    - Rewrote POI code: Each Digsite object is now responsible for its own map icon and survey node icons.
    - Added second Lake of Stars digsite - Mogu. First is Mantid.
    - POIs will once again be cleared from the minimap when a digsite is completed.
    - Removed the location table from the POIs - it was never used, but was thrown away and re-created every time a POI was hidden or shown.
    - Digsites are now created only once instead of thrown away and/or recreated in UpdateAllSites(), now have better-named fields, and the initial methods :IsBlacklisted() and :ToggleBlacklistStatus(). Various cleanups were made in associated code.
    - Updated Ruins of Khintaset Digsite to the new format. 8 to go.
    - Stop checking if GetNumArchaeologyRaces() returns 0. It won't, and if it ever does we have bigger problems.
    - DigsiteRaces => DigsiteType
    - Archy:AddRace() => private.AddRace()
    - Check to see if the ArtifactFrame has a skillBar before attempting to update it (minimal mode does not).
    - Moved CRATE_OF_FRAGMENTS to just before FindCrateable() since it's only used there.
    - Removed some constants that were never used.
    - Added crate item IDs for Mantid, Mogu, and Pandaren to CRATE_OF_FRAGMENTS.
    - Alphabetized entries in CRATE_OF_FRAGMENTS by race name.
    - Added "Tooltip Hide Delay" config option, and lowered the default from 0.25 (previously hardcoded) to 0.1 seconds.
    - Updated Scorched Plain Digsite to new format. 9 to go.
    - Added Race:IsOnArtifactBlacklist()
    - Corrected data for Highmaul Watchtower Digsite - addresses ticket #542
    - Removed db.profile.data - wasn't used for anything except storing "imported" = false
    - If Archy is missing data about a digsite, don't add a fake digsite with bad data to the list; simply advise the user what the name and key should be so they will hopefully report it.
    - Moved declaration and init for CONTINENT_RACES to Database/Digsites.lua
    - Removed reference to Archy in TomTomHandler.lua - was never used.
    - Renamed DIG_SITES to DIGSITE_TEMPLATES.
    - Loop through db.char.digsites.blacklist in Archy:OnInitialize(), setting all entries with the value false to nil.
    - Changed Archy:ToggleSiteBlacklist() to set nil, rather than false, when removing a digsite from the blacklist. No need to store a false value...
    - Removed superfluous metatble on db.char.digsites.blacklist that only served to set the index value to false. Sure, let's store that value in the SavedVariables for every site that isn't blacklisted...
    - Removed Archy:ImportOldStatsDB() as it is no longer required.
    - Increased length and width of the distance indicator FontString slightly. Fixes ticket #498
    - Updated Scourgeholme Digsite to the new format. 10 to go.
    - West Summer Fields Digsite no longer exists in game. This leaves 11 digsites to convert to the new format.
    - Removed digsite conversion code, and changed a @debug@ block to @alpha@ - if you want to help finish converting to the new format, grab the alpha and do "/archy scan" every few digsites you handle, then make a ticket if anything is found.
    - Updated Nightmare Scar Digsite to the new format. 12 to go.
    - Added "Enable TomTom Crazy Arrow" option in the "TomTom Support" section (needs localizations): addresses ticket #453. Waypoint data will now also display the artifact race type in parens.
    - Updated Valkyrion Digsite to the new format. 13 to go.
    - Updated Tombs of the Precursors Digsite to the new format. 14 to go.
    - Moved default frame positions a bit to the left so they aren't overlapping the ObjectiveTrackerFrame.
    - Variable renames for clarity.
    - Moved QUEST_ITEM_IDS into a do-block with Archy:LOOT_OPENED(), and added two itemIDs.
    - Frames should be hidden if the current continent is -1.
    - Updated Forest Song Digsite to the new format. 15 remaining.
    - Cleanups.
    - Major rewrite for Artifacts.lua and all code using it: Now structured by tables keyed by raceID containing tables keyed by itemID. All data removed except for spellID and itemID per artifact, because it was never used and is available via the API. Artifact names are now generated from their itemID when races are added, negating the need for LibBabble-Artifact-3.0
    - Reformatting
    - Filter the tooltip to the current continent by default; showing everything makes the tooltip quite large, and most people only care about what they are working on _now_.
    - The "Filter tooltip to Continent" option now also applies to the list of artifacts.
    - Cleanup.
    - Move declaration of CONTINENT_RACES to Constants.lua and its definition to Archy.lua in Archy:OnEnable() (since Constants.lua loads first in the chain, rendering the dig site definitions unusable at that point).
    - Disable the ArcheologyDigsiteProgressBar since Archy's DigSiteFrame handles that.
    - Update digsite find counter when ARCHAEOLOGY_FIND_COMPLETE and ARCHAEOLOGY_SURVEY_CAST fire, instead of CURRENCY_DISPLAY_UPDATE. Update all other site stats when ARCHAEOLOGY_SURVEY_CAST fires, instead of UNIT_SPELLCAST_SUCCEEDED.
    - findCount => maxFindCount
    - Call tonumber() on the result of the split on new-format digsites, so the key to CONTINENT_RACES is what it should be.
    - Added blobID to output for scanner and error message when a dig site isn't in the database.
    - Updated "Altar of Sseratus Digsite" to the new format. 16 more to go.
    - Updated data for "Akhenet Fields Digsite," "Cursed Landing Digsite," and "Keset Pass Digsite" - down to 17 needing updates.
    - Removed Grim Batol Digsite; it no longer exists in-game.
    - Updated data for Terrorweb Tunnel Digsite.
    - Resize the ArtifactFrame to account for the counter size.
    - Account for per-site find counts (for example, Stonecrag Excavation Digsite allows for 13)
    - Revamped dig site data to use data from GetMapLandmarkInfo() as a table lookup, instead of the localized site name. Idea and initial data from sidji. Only 20 sites need to be converted, then LibBabble-DigSites-3.0 can GTFO.
    - Dead code removal: mapFile and MAP_FILENAME_TO_MAP_ID were not being used, only assigned.
    - Killed Archy:OnDisable() - there was no supporting code for it anyway.
    - Archy:RefreshRacesDisplay() => ArtifactFrame:RefreshDisplay()
    - Timer cleanup, and remove updating of frame chrome twice.
    - Checking next(MAP_CONTINENTS) before iterating through pairs(MAP_CONTINENTS) is fucking hilarious. Let's not do that.
    - Checking for the existence of tables/frames that will most definitely exist at the time of code execution seems silly.
    - Assign private.TomTomHandler to local TomTomHandler in Archy:OnEnable() and use the upvalue throughout the file.
    - Archy:UpdateRacesFrame() => ArtifactFrame:UpdateChrome()
    - RacesFrame => ArtifactFrame, and minor cleanups.
    - Archy:UpdateDigSiteFrame() => DigSiteFrame:UpdateChrome()
    - Missed a reference.
    - Changed private.digsite_frame to private.DigSiteFrame and assign it to the local DigSiteFrame after the InitializeFrames() call so it can be used throughout the Archy.lua without a table lookup.
    - Readability cleanup.
    - Show maxSurveyCount on the DigSiteFrame regardless of the frame theme.
    - Moved initial frame manipulations out of InitializeFrames() to immediately after it's called in Archy:OnEnable() so the frame upvalues will have been assigned.
    - DistanceIndicatorFrame refactoring.
    - Removed private.frames_init_done - it's no longer necessary due to the new init scheme.
    - Moved styling code out of RefreshRacesDisplay() and RefreshDigSiteDisplay() into UpdateRacesFrame() and UpdateDigSiteFrame() - refreshing should only be used for data.
    - Readability changes, and name the ArchyArtifactChildFrame using DigsiteRaceLabelFromID instead of the ID.
    - Added DigsiteRaceLabelFromID table.
    - Set the player position data in :OnEnable
    - Cleaned up initialization when Archy loads.
    - Moved the code for Archy:RefreshAll inline to Archy:UpdatePlayerPosition - was only ever used there.
    - Readability cleanup.
    - Call race:UpdateArtifact() when the race is instantiated.
    - Added timestamps to debug messages. Added DebugPour(), which additionally outputs to the LibSink target.
    - Moved code for CacheMapData directly into Archy:OnEnable()
    - Don't hide the dig site frame's children and then never reshow them if a single dig site for the current continent has a nil distance; never hide them at all, and simply set the distance display to UNKNOWN if this is the case.
    - Variable rename.
    - Naming cleanup.
    - Massive reduction in table lookups during frame updates.
    - Moved InitializeFrames() from Archy.lua to Interface.lua
    - Whoops. Draenor actually has 9 fragment finds per dig site.
    - Rewrote handling of dig sites for the BattlefieldMinimap, and ensured that they are shown/hidden alongside the WorldMapArchaeologyDigSites
    - Replaced the evil ContinentRaces() function with the CONTINENT_RACES table.
    - Show the proper number of available survey finds (8 in Draenor, 6 everywhere else).
    - Based on a hunch, I looked at TomTom's code and determined that there's no fathomable reason to require a UI reload when disabling its "Enable automatic quest objective waypoints" setting. So why the hell were we doing so?
    - Moved most of the code dealing with the frames to Interface.lua - this brings Archy.lua down to a still-insanely-huge 2446 lines of code.
    - Removed check for FramesShouldBeHidden() when using mouse-survey functionality. Whether or not the frames are shown shouldn't fucking matter.
    - private.dig_sites => private.DIG_SITES
    - Renamed Archy.xml to Interface.xml (at least until I get rid of the XML altogether. Bleh.)
    - So...if LibStub doesn't find LibSharedMedia-3.0, we force load it and then ask LibStub for it again? No. This isn't how that shit is done. Begone!
    - Dead code removal.
    - Minor cleanups, and removed useless comments.
    - Logic cleanup.
    - SortSitesByName => SortSitesByZoneNameAndName
    - Changed a bunch of Archy.something to self.something
    - Moved the slash command handling, took its initialization out of :OnEnable(), and put it in the main chunk.
    - Refined TomTom error dialog a bit.
    - Cleanup.
    - Complete rewrite of TomTom handling.
    - Moved some constants to Constants.lua
    - Changed frame lock/unlock notification to use the configured announcement output, rather than defaulting to the chat frame, and improved the localized wording. ("Locked: No" instead of "Unlock"...)
    - Added confirmation dialog to theme-changing. Addresses ticket #402
    - Reassign tomtomExists whenever the  TomTom config is updated. Supposedly fixes ticket #490, but I don't run Carbonite so I can't say for certain.
    - Added TODO so I'll remember to rewrite ContinentRaces() into a static table, because creating throwaway tables with the intent of iterating over them to perform name matches is not cool.
    - Removed ClearAllPOIs() - it was a three-line loop that was only ever called from UpdateMinimapPOIs().
    - Moved the code for GetContinentSiteIDs() into ClearInvalidPOIs(), since that's the only place it was ever called.
    - Moved MatchFormat() and ParseLootMessage() into a do-block with Archy:CHAT_MSG_LOOT().
    - Changed HasArchaeology() to return true or false, instead of the profession index.
    - Comment fixes.
    - Removed the completely batshit IsFishingPoleEquipped() function: Calling select() twice on the values of calling GetAuctionItemSubClasses(1) twice, every time we need to check for a fishing pole being equipped... Replaced with calling IsEquippedItemType() on FISHING_POLE_NAME, which is assigned at load time.
    - Removed IncrementDigCounter() - it was only ever used in one place, and it...increments a dig counter. What the actual...
    - Formatting fixes, and added a TODO so I can investigate why the hell the comment "for now let's just avoid the error" was added, instead of fixing the actual cause of whatever the error was.
    - Moved the code for UpdateSite() directly into UpdateAllSites() since that's the only place it was ever called.
    - Logic cleanup.
    - Refactored UpdateSite() - variable renames for sanity, rearranged some things, and removed a completely useless call to GetArchaeologyRaceInfo().
    - Added data-mining code, courtesy of sidji.
    - Moved body of GetContinentSites() into UpdateSites() - no idea why they were separate functions, since the former was only ever used in the latter.
    - Renamed DIG_LOCATION_TEXTURE to DIG_LOCATION_TEXTURE_INDEX
    - Utilized the new releaseHandler parameter for LibQTip-1.0:SetAutoHideDelay() so Archy isn't clobbering another AddOn's tooltip.
    - Added IsInInstance check to PLAYER_ENTERING_WORLD; calls HideFrames if true, ShowFrames if false.
    - Added HideFrames and ShowFrames functions.
    - Renamed ShouldBeHidden() to FramesShouldBeHidden()
    - Changed PointsOfInterest to store only active POIs (as a key instead of a value), and removed the .active field from the POIs.
    - Renamed allPois to PointsOfInterest.
    - Combined ClearSitePOI() and ClearSurveyPOI() into ClearPOI()
    - Dead code removal.
    - Cleanup.
    - Moved the event handlers to the bottom of the file, pending relocation to their own file.
    - Comment  fix.
    - Moved initialization of CRATE_USE_STRING and digsitesTrackingID into :OnEnable() and greatly simplified the code required to do so.
    - Alphabetized RegesterEvent calls by event name for ease of skimming.
    - Do not perform tooltip scanning to get CRATE_USE_STRING if it's already set. Don't iterate through tracking types if digsitesTrackingID is already set...
    - Added LibTextDump-1.0 so the debug code will actually work.
    - Guard against nil artifactIndex.
    - Added RAD_135 and SQUARE_HALF constants. These should NOT have been constantly re-calculated in a damn OnUpdate.
    - Replaced convoluted StateDriver code with straightforward Show/Hide semantics for combat. Now it Just Works (™). Fixes ticket #494.
    - Added debug frame.
    - Changed subcommand handler into a table lookup, instead of an insanely long if-else chain.
    - Ensure that there is a value for distance, 0, in case Astrolabe does not return one. Fixes ticket #529
    - Don't just check if artifactSolved.raceId is greater than zero before announcing what was solved; make sure it matches the ID of the current race in the iteration so we announce the correct one...
    - Cleanup.
    - Corrected variable naming.
    - Replaced GetArtifactStats() with Race:GetArtifactCompletionDataByName() - uses name to index mapping table instead of iterating over indices to check for name matches.
    - Map artifact names to indices upon race creation, to do away with iterating the indices for stats lookups.
    - Dead code removal.
    - Severely reduced the number of table lookups in Archy:ScanBags()
    - Re-added assignment of keystone inventory value...whoops...
    - Logic simplification.
    - Removed artifact_data table in favor of each race entry containing its own artifact information, and replaced UpdateRaceArtifact() with Race:UpdateArtifact()
    - Don't check for the Races table being empty before initializing - it will be at this point.
    - Moved DB files into Database dir.
    - Removed useless/outdated comment.
    - Began revamp on race-handling: Initialize a race explicitly by ID when the AddOn is enabled, instead of upon an index attempt on the list table (initialization was happening on UpdatePlayerPosition, if the list table was empty, FFS), and moved the keystone cache-processing queue to Race.lua
    - Variable renames for clarification of purpose.
    - Cleanups and reformatting.

Additional Files