Thursday, 3 October 2019

Map scaling fix

Hi again,

a very small hotfix for the build yesterday. This should make the scaling of the 2D maps align a lot better with the game maps.

You can get the new build here.

Changelog:

  • Fixed 2D map scale factor
  • Removed some exit code that crashed sometimes

Minimap and World Map Support

Hi everyone!

It's been a while again, real life is taking its toll, but things have been happening in the background. Yesterday a patch I've been waiting for a long while went live, and with it came some new additions to the Mumble link: namely information about the minimap! So after two nights without sleep, I give you the new TacO build that now supports the minimap and the full map as well.
Trails and markers on the minimap
The minimap's location, panning and rotation is automatically tracked, and all the markers can be displayed on there as well. I realize that this might result in sensory overload, so there are options to turn off trails and markers separately for each of the three display modes (in-game 3d, minimap and full map), and new marker category options for marker pack creators to set a preference for a marker category to be displayed in-game, on the maps, or both. Here follow the technical specs of the newly available marker data.

Markers and trails on the world map
New marker category attributes:

  • mapDisplaySize - integer value. The size of the marker at normal UI scale, at zoom level 1 on the miniMap, in Pixels. For trails this value can be used to tweak the width of the trail on the map. Default value: 20
  • miniMapVisibility - boolean value, if 1, the marker/trails belonging to this category will show up on the minimap. Default value: 1.
  • mapVisibility - boolean value, if 1, the marker/trails belonging to this category will show up on the main map. Default value: 1.
  • inGameVisibility - boolean value, if 1, the marker/trails belonging to this category will show up in-game, like the markers you're used to. Default value: 1.
  • scaleOnMapWithZoom - boolean value, if 1, the markers/width of the trails belonging to this category will scale with the zoom level as you zoom in and out. Default value: 1.
  • mapFadeoutScaleLevel - float value. Zooming out farther than this value will result in the marker/trail fading out over the course of 2 zoom levels. Default value is 100, which effectively means no fading.
  • keepOnMapEdge - boolean value, only affects markers, not trails. If 1, markers belonging to this category will not disappear as they move out of the minimap's rectangle, but will be kept on the edge like the personal waypoint. Default value: 0.
Many, many thanks to Jonagar and dsnider of the ArenaNet team for making this possible.

You can download the new build here.

And now for the change notes:


  • Markers and trails will now fade out while in the map view
  • The minimap and world map can now display markers and trails for the current map
  • Added marker category attributes to control the 2D map displays
  • 3D markers/trails that would be drawn over the minimap are now occluded correctly
  • Added a Visibility menu that allows the customization of the visibility of markers and trails separately for the 3D in-game view, the minimap and the world map. Each option can be set to default (meaning the marker pack will decide to display the marker or not) and can be forced to be turned on or off
  • Trail mesh generation has been updated a bit to avoid some of the twists that can happen
  • Added an option to toggle the unit of the marker distance display to be meters instead of inches
  • Added an option to toggle the forcedpiaware command line switch from within TacO. Changing this option requires a restart of the overlay to take effect
  • Added Grothmar Valley map timer
This update brings some changes to the localization strings, non-English translations must be updated by their maintainers.

Saturday, 27 July 2019

Minor bugfix

Hi everyone,

two quick bugfixes to yesterday's release.
Grab the new build here.

Change log

  • The about window and check for update menu now point to a non-broken link
  • The TP tracker's images now display correctly

Friday, 26 July 2019

Trading Post Tracker, Raid Tracker Updates and more!

Hi everyone,

busy week. There have been some interesting requests and TacO is starting to stretch the limits of where the official APIs can take it, for now at least. From least interesting to most, an 1600 range circle has been added (still no user-defined circles, sorry) and a new capability was added to marker categories that will automatically hide the markers in that category if the player has the appropriate achievement already unlocked.

The raid tracker window has been updated. It now features a compact mode that can be toggled on or off, and the individual raids themselves can be toggled on or off to show only interesting information. When a new raid is added through the API it will still automatically show up as before.
Compact raid tracker window
And now for this week's big new feature: I give you the Trading Post Tracker. This window will show you the status of your current buy orders and sell listings, and highlight in red those of them that have been outbid/undercut. Several configuration options include to only show the outbid/undercut items, to only show sell listings/buy orders, and to only show one listing for each item type, the one that is closest to being fulfilled. To make the display a bit more visually useful, the appropriate item icons are downloaded from the API and displayed next to the item names. Since the API to access this isn't real-time, the TP tracker window will also only update every couple minutes. Note, that the window will first open in the middle of the screen and you'll have to place it in Window Edit mode (you can toggle that in the settings submenu)
This is an in development screenshot, the buy/sell quantity is also displayed in the release.
You can download the new build here.

Change notes:

  • Added Trading Post tracking window to monitor buy and sell orders (Requires API key with tradingpost access)
  • Added 1600 range circle
  • Added compact view option for raid progress tracker
  • Individual raids can now be toggled on and off for the raid progress tracker
  • Added localization options to raid names (default fallback to English name) and raid progress tracker texts
  • Added auto-hiding capability to marker categories based on achievement information (Requires API key with progression access): the new marker category properties of achievementId and achievementBit have been added to identify the achievement/bit that hides the marker
  • Fixed a bug where markers placed with a category without an assigned icon file would display as a random icon instead of the default diamond
This update brings some changes to the localization strings, non-English translations must be updated by their maintainers.

Sunday, 21 July 2019

Optimization and polish time

Hi everyone,

It's more of a maintenance release this time with focus on better resource usage, performance and bugfixes/polish. This time the goal was to fix as many of the UI engine issues as possible, starting with text rendering to many context-menu related bugs. This new build should give a more seamless in-game experience.
You can get the new build here.

Changelog:
  • Added 1500 range circle
  • Decreased memory overhead caused by the big font pack (for non-latin text only glyphs found in the language files and marker packs are loaded)
  • Decreased memory use of POI data by around 45% (not including raw image data)
  • Fixed a potential crash in non-latin text rendering
  • Fixed text width calculation for non-latin text rendering
  • Fixed some tokens not showing up as translated
  • WvW objective names now change instantly when changing languages, not just after TacO restart.
  • Fixed a context menu sizing issue 
  • Optimized excess CPU usage a bit
  • Bugfix: Submenu text will no longer revert when reopened after toggling marker category
  • Bugfix: Context menus should no longer get stuck when toggling elements

Sunday, 14 July 2019

Minor fixes for yesterday

Hello again,

as expected, a number of small issues have been reported by the community since yesterday's build. A hotfix build is out, it brings full utf-8 support so now non-latin text can also be displayed, but the font is limited to the font that the GW2 client can display in the chat box.

You can download the new build here.

Changelog:

  • Fixed some minor localization related issues (tokens not converted to text, some text missing its first letters, typos in the English translation)
  • Fixed an issue with utf-8 text rendering that would render glyphs with an ID over 32768 render incorrectly
  • Added the complete font set from the client to the UI skin. This will increase startup and shutdown time a bit, but allows for translations into non-latin languages. Not all glyphs are supported, but if it works in the in-game chat box, it will work with TacO. I've been told that the simplified chinese glyph set is incomplete (it's incomplete in GW2 too), use traditional chinese instead. (Note: this only affects the default font for the TacO menu used to display most things. The debug line, update text and large locational timer fonts don't have non-latin characters.)
  • Added an outline to the debug text and the new build available text
  • Updated the new build text to show how many new builds are available
  • Files with the .taco extension are now loaded by the overlay on startup to help with the "should I unpack the .zip" confusion
  • Individual events on the map timer can now refer to the Hero's choice API events as well through the WorldBossAPIID property
  • Settings data will now also be saved 10 seconds after the last change in the settings instead of only on exit
  • Fixed a stack corruption error
  • Fixed a possible crash that could occur in rare occasions when multi-clienting. A reminder: multi-clienting is not supported by TacO because the GW2 client and the Mumble API doesn't support it either.
  • Added an on-screen warning if multiple GW2 clients are detected
This update brings some changes to the localization strings, non-English translations must be updated by their maintainers.

Saturday, 13 July 2019

World Boss Tracking, Map Timer Update and Localization Support

Hi, everyone!

First of all thank you for the number of donations and kind messages I received after the last update, it's nice to see that TacO has such a cool following :)

It's also been brought to my attention that I missed an interesting API endpoint that allows you to see which world bosses you've already slain today. There also happens to be such an endpoint for the daily hero's choice chests for the expansion maps (not available for living world maps yet it seems, sorry). So I present to you a map timer update: the world boss kill and daily meta chest tracker! Also it turns out that the next major community event is a Boss Rush event, so the timing is pretty good too :)
Finished daily hero's choice chests and bosses will have a yellow highlight
This feature requires that you have your API key set up. If you don't, the map timer will function as before.

The built-in map timer descriptor has also been updated to include the PoF and Living World Season 4 maps.

Also good news for those who have been experiencing instant crashes on startup: the culprit has finally been identified, turns out it had to do with non-latin text input. There may be some lingering issues that pop up later, but if you're using Japanese/Chinese/Korean text input on windows, this should at least allow you to run TacO now.

Something else also happened, people started hacking the TacO executable itself to try to add localization support. This is not something that I feel good about since it probably won't ever result in a fully translated overlay but on the other hand if not done right, it'll introduce instability into the program. I pride myself on the stability and robustness of my work, so yeah... This made me bite the bullet and thus I give you the long awaited Localization Support. TacO now comes with a language file, and most of the visible text (aside of marker editing functionality and copyright info) in the overlay comes from this file. The file supplied with the TacO package is called TacO_Language_en.xml, however the overlay will try to load all TacO_Language_*.xml files on startup and let the user select between their contents in the overlay settings submenu. The intent is that content creators can go ahead and translate the language file and distribute their own TacO_Language_fr.xml or TacO_Language_de.xml or similar without having to edit or overwrite the English original. Changing languages in the overlay has a small limitation, WvW location names will only update after the overlay has been restarted. Text that hasn't been translated in a specific language file will show up as a token name between [brackets] and the log file will contain any missing tokens that need to be translated, to help with such efforts. Non-latin text is not supported as the TacO fonts are missing these characters, and utf-8 support in the ui engine is still a bit dodgy.
Language selector and the new submenu for overlay settings
The localization feature can also be used to have WvW location names appear different than they are in the API. This was a request I had way back when WvW support was first added.


Changelog:
  • Map timer config context menu doesn't close now when toggling a map
  • Updated map timer info for PoF and later maps
  • Map timer can now track your daily boss kills for those bosses that have an API endpoint (world bosses and hardcore world bosses, requires API key)
  • Map timer can now track your daily map metas that have an API endpoint (Maps that have a hero's choice chest, requires API key)
  • TacO should no longer crash on startup when non-latin input methods are used (Disabling the IME altogether for TacO seems to have fixed it)
  • Marker distance text now has a slight outline for better visibility
  • Marker distance text is now faded out with the marker to remove clutter
  • Even faster start-up and significant memory use improvements by on-demand loading of POI graphics.
  • Hidden windows should no longer hold up clicks to GW2. Hopefully. I couldn't reproduce the original issue to test it.
  • Range circle toggles will now keep the menu open like the marker filters
  • Added "IsSeparator" attribute to marker category descriptions. If it's value is 1, the category will act as a separator in the marker category filter and won't have an [x] toggle
  • Moved [x] toggles to the beginning of the line in the marker category filter menu
  • Highlighted some toggled features of the menu system
  • Rearranged the TacO menu to hide overlay-related settings and make things a bit cleaner
  • Added localization support. The default TacO install will only come with an English language pack though, it's up to you guys to create (and update) other translations.

Sunday, 7 July 2019

Minor update

Hi everyone,

it's been a while. Work and real life stuff etc mean that I don't have as much energy to focus on TacO as before. But Tekkit and people like him keep the overlay filled with fresh content even so :)

At any rate, a couple days ago I added a minor update to help me with some collections - but I had to realize that it's not too practical without the 2D maps on Dulfy (due to her absence of late) to give some general idea of how far the markers are. So I added an optional feature to display the distance of all markers.

The distance numbers are small, but can make a big difference.

And while I was at it I poked around a bit in the TacO code to streamline some other stuff that's been bugging me for a while. Some of it is optimization, but the most interesting part might be that TacO is now throttled to the framerate of GW2 by default in order not to overtax the system. This can be disabled in the config file.

So without further ado, here's the change log, and of course you can get the latest version from HERE.

Change notes:

  • Added option to toggle marker distance display
  • Added framerate throttling so that TacO rendering is keeping pace with GW2. TacO will still maintain a minimum 5fps framerate. This setting can be disabled by editing TacOConfig.xml's "FrameThrottling" option. It's on by default.
  • The contents of TacOConfig are now alphabetically sorted to make it easier to find stuff in there
  • Optimized the loading of marker packs, TacO should start up noticeably faster now when loading large zipped marker packs, like Tekkit's stuff
  • Fixed some on-exit resource leaks