1.8.57-125-g03a922f-nolib
Details
-
FilenameArchy-1.8.57-125-g03a922f-nolib.zip
-
Uploaded by
-
UploadedFeb 14, 2015
-
Size234.84 KB
-
Downloads54
-
MD50c7bbf7c9af5d96c5c130fadc6f087a7
Supported WoW Retail Versions
- 6.0.3
Changelog
James D. Callahan III:
- 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.