Quantcast
Download
(25 Kb)
Download
Updated: 04/09/17 03:06 PM
Pictures
File Info
Compatibility:
Homestead (2.7)
Updated:04/09/17 03:06 PM
Created:06/25/16 12:39 AM
Monthly downloads:14,402
Total downloads:60,964
Favorites:157
MD5:
2.7
Votan's Mini Map  Popular! (More than 5000 hits)
Version: 1.1.3
by: votan [More]
Description
This addon reactivates the mini map from ZOS. Thus the mini map does not do less, but also not more than the build-in world map, because it is the build-in world map.

No artificial synchronization of (custom) pins between mini map and world map. All kind of pins are supported by design.
But also no border pins or rotation mode and such features. My mini map is intended to be lightweight and fast.
  • Includes world map performance tweaks, which can be disabled for performance comparison.
    The tweaks changing the pin rendering to utilize the CPU up to a framerate of 75 only. Seeing the pins rendered over time is not a sign of overload of this addon, but a compensation of others.
  • Conflicts with other mini maps can be expected. Therefore the mini map can be disabled to use the tweaks only.
  • I do not recommend to use the AUI mini map module at the same time as mine.
  • Gamepad support, but limited due to lines in ZOS source code, they call a "total hack" themself:
    Positioning and resizing in keyboard mode only.
  • The window is resizable via mouse. (this code is written by ZOS, not me)

If you think you need a full-featured mini map try the MiniMap by Fyrakin.

Providing a mini map can be an unthankful job. I guess Fyrakin could sing a song or two. Therefore I can't resist to say:
The addon works well for me. Otherwise I would not have released it. If you think you have performance problems due to this addon, help tracking down or stop using.
Frame freezes are most likely coming from an addon providing a lot of pins without taking care about creating even a simple pin takes some time multiplied by hundreds.
In this case the author of that addon can make it more mini map friendly, only.

Thanks to @scootworks, @Anceane and @Drakanwulf for testing

Remarks
There are key-bindings to toggle the mini map on/off. For technical reasons the toggle while at siege weapons needs its own key-binding. But you can re-use the same key.

If you feel dissatisfied with the second main menu entry for "Addons", take a look at Harven's AS to LAM adapter.

ToDo
- Try to enable tooltips
version 1.1.3:
- update to LibAsync 1.2: Low framerate mode, fix bug in Delay.
- Fix potential issue with detecting LibGPS.
- New option to show/hide compass, if mini map is shown on HUD.

version 1.1.2:
- LibAsync rev 1.1: New target framerate 75.
- Back to render method of v1.1.0 with new LibAsync.
- Fixed missing map update for Cyrodiil specific pins.
- Added debug option to show frame freeze warning.

version 1.1.1:
- Deleted unused files.
- Reverted rendering tweaks, which could make the addon "heavier".

version 1.1.0:
- Better support for LibGPS.
- Limited gamepad support. Thanks to @Shinni.
* Limitation: Positioning and resizing can be done in keyboard mode only.
- New option to suppress Zone change annoucement in upper right corner.
- Use LibAsync for asynchronous programming.
- New option: time format.

version 1.0.10:
- Added optional dependency to TrueExploration for compatibility.
- Fixed another small issue with "Show on Map".

version 1.0.9:
- New option to choose either or not to zoom to player.

version 1.0.8:
- Changed clamped-to-screen-insets, requested by F-Lambda
- Fixed pins were keeping mouse-over-size.

VotansMiniMap v1.0.7:
- Update to LAM2 rev 23
- ESO 2.7 "Homestead" ready
- Thanks to @Chip, I can use new world map functions to move the map faster to player position

version 1.0.6:
- Better unsupport of gamepad mode: World map is not broken, if switching to gamepad mode.
* Still no change to World Map code from ZOS. Gamepad support still not possible.
- Reworked "Spread over time" calculations: Don't be too restrictive for framerates 60+.
- As map pins are larger now, they are made smaller on mini map.

version 1.0.5:
- Restore player pin level. (Hopefully)
- Hide map in gamepad mode.
- Scale unit pins, but not below configured minimum.
- Tweak change: Multiple calls to UpdatePinsForMapSizeChange are buffered, but the update itself is not spread over time anymore.
- ESO 2.6 'One Tamriel' ready.

version 1.0.4:
- Allow to hide floor buttons.
- Show player location name in title.
- Added thin shadow to title bar font.
- Zoom level for sub-zones and dungeons
- key-binds to adjust zoom directly
- New Style "Modern"

version 1.0.3:
- More options: Allow to lock window position
- Drag with the bottom bar, too.
- Auto size pins on zoom less than 1.
- Key-binds to change zoom factor while key is pressed, as suggested by @Baertram.
- Fixed missing zoom if using wayshrine in subzone. (Hopefully)

version 1.0.2:
- Again, more appearance options: Title font, size, color.

version 1.0.1:
- More appearance options. (Yes, yes, more will come)
- Fixed map pin filter for Cyrodiil.
- Fixed compatibility issue with Dolgubon's Lazy Writ Crafter.
- Update 11 (Shadows of the Hist) ready.

version 1.0.0:
- initial
Optional Files (0)


Archived Files (14)
File Name
Version
Size
Author
Date
1.1.2
25kB
votan
04/02/17 03:39 AM
1.1.1
25kB
votan
03/25/17 02:21 PM
1.1.0
27kB
votan
03/15/17 02:09 PM
1.0.10
21kB
votan
02/25/17 02:21 PM
1.0.9
21kB
votan
02/12/17 05:59 AM
1.0.8
21kB
votan
02/11/17 09:56 AM
1.0.7
21kB
votan
02/03/17 12:04 PM
1.0.6
21kB
votan
11/20/16 08:52 AM
1.0.5
21kB
votan
09/07/16 11:07 AM
1.0.4
19kB
votan
07/16/16 07:54 AM
1.0.3
19kB
votan
07/09/16 06:13 AM
1.0.2
18kB
votan
07/03/16 11:58 AM
1.0.1
17kB
votan
06/28/16 11:44 PM
1.0.0
16kB
votan
06/25/16 12:39 AM


Post A Reply Comment Options
Unread 02/14/17, 01:11 PM  
choekstr
 
choekstr's Avatar

Forum posts: 11
File comments: 265
Uploads: 0
So...not that it matters or I care much, but what's the point of having a seperate "Add-Ons" for your mods instead of having it in with the rest of the "Addons"?

Is it to stand out or just a mistake of typing what category to put it in?
Report comment to moderator  
Reply With Quote
Unread 02/11/17, 10:44 AM  
votan
 
votan's Avatar
AddOn Author - Click to view AddOns

Forum posts: 378
File comments: 612
Uploads: 20
Re: Not updating...

Originally Posted by kermudgen
So i saw the update this morning. I was on Minion and the it will not update when you click the 'update' button. I'll try ESOUI, but not sure if the glitch is on Minion or something you need to adjust on your end. All my other Minion updates went through fine though.
It's quite fresh. You may have to wait a bit.
__________________
@votan73 (EU - megaserver)
Report comment to moderator  
Reply With Quote
Unread 02/11/17, 10:34 AM  
kermudgen

Forum posts: 2
File comments: 26
Uploads: 0
Not updating...

So i saw the update this morning. I was on Minion and the it will not update when you click the 'update' button. I'll try ESOUI, but not sure if the glitch is on Minion or something you need to adjust on your end. All my other Minion updates went through fine though.
Report comment to moderator  
Reply With Quote
Unread 02/11/17, 10:32 AM  
kermudgen

Forum posts: 2
File comments: 26
Uploads: 0
Originally Posted by Bierdeife
Originally Posted by kermudgen
Originally Posted by Bierdeife
Why there a two clocks? I just need one.
One is actual time... the other is in-game time.
Oh, okay. Thank you!
there's a few... like spawns for were wolves and bloodfiends.. but you also have align those with the moon phases.

And RP'rs love that sort of thing too.
Last edited by kermudgen : 02/11/17 at 10:33 AM.
Report comment to moderator  
Reply With Quote
Unread 02/11/17, 10:31 AM  
Bierdeife

Forum posts: 0
File comments: 33
Uploads: 0
Originally Posted by kermudgen
Originally Posted by Bierdeife
Why there a two clocks? I just need one.
One is actual time... the other is in-game time.
Oh, okay. Thank you!
Last edited by Bierdeife : 02/11/17 at 10:31 AM.
Report comment to moderator  
Reply With Quote
Unread 02/11/17, 10:27 AM  
kermudgen

Forum posts: 2
File comments: 26
Uploads: 0
Originally Posted by Bierdeife
Why there a two clocks? I just need one.
One is actual time... the other is in-game time.
Report comment to moderator  
Reply With Quote
Unread 02/11/17, 10:13 AM  
Bierdeife

Forum posts: 0
File comments: 33
Uploads: 0
Why there a two clocks? I just need one.
Last edited by Bierdeife : 02/11/17 at 10:15 AM.
Report comment to moderator  
Reply With Quote
Unread 02/10/17, 12:00 PM  
Phinix
 
Phinix's Avatar
AddOn Author - Click to view AddOns

Forum posts: 126
File comments: 687
Uploads: 23
Hi Votan,

So I along with many others have been experiencing this issue since the Homestead update where randomly dragging or using (double-clicking, etc.) an item from your inventory will cause a generic error:
Code:
EsoUI/Ingame/Inventory/InventorySlot.lua:2325: attempt to access a private function 'PickupInventoryItem' from insecure code
stack traceback:
	EsoUI/Ingame/Inventory/InventorySlot.lua:2325: in function '(anonymous)'
	EsoUI/Ingame/Utility/ZO_SlotUtil.lua:14: in function 'RunHandlers'
	(tail call): ?
	ZO_PlayerInventoryList1Row1_DragStart:4: in function '(main chunk)'
After much trial and error (see this thread for details), I have been able to reliably generate this error with only two addons loaded: Map Coordinates by Garkin and this addon.

Keep in mind it is a random error. It may not happen simply by loading these two together. HOWEVER, I have been able to repeatably generate the error with only these two loaded. (Sometimes enabling a known working addon, reloading, then disabling that addon, so these two are the only remaining checked, and reloading, will cause the error to occur the next time you do one of these actions from the inventory.)

I haven't had a chance to look into the code, but as was discovered in the thread above and confirmed and clarified by Randactyl, the problem originates from an insecure hook somewhere. Something ZOS changed is now causing a hooked function to pass insecure code to a private function being referenced where it wasn't before.

So in troubleshooting my own addons, I first started by eliminating hooks, or converting them to ZO_PreHook where possible.
Last edited by Phinix : 02/10/17 at 12:05 PM.
Report comment to moderator  
Reply With Quote
Unread 02/10/17, 12:17 AM  
votan
 
votan's Avatar
AddOn Author - Click to view AddOns

Forum posts: 378
File comments: 612
Uploads: 20
Re: Border/Edge Placement

Originally Posted by F-Lambda
Is it possible for you to adjust the borders of how far it can go? At the moment, the minimap cannot go all the way up to the edge of the screen, so it leaves a small gap that I find very distracting. See attached picture.

Edit: Fixed image link.

yes, it is.
Coming with the next update.
__________________
@votan73 (EU - megaserver)
Report comment to moderator  
Reply With Quote
Unread 02/09/17, 04:00 PM  
F-Lambda

Forum posts: 0
File comments: 12
Uploads: 0
Exclamation Border/Edge Placement

Is it possible for you to adjust the borders of how far it can go? At the moment, the minimap cannot go all the way up to the edge of the screen, so it leaves a small gap that I find very distracting. See attached picture.

Edit: Fixed image link.

Last edited by F-Lambda : 02/09/17 at 04:05 PM.
Report comment to moderator  
Reply With Quote
Unread 02/04/17, 03:02 AM  
votan
 
votan's Avatar
AddOn Author - Click to view AddOns

Forum posts: 378
File comments: 612
Uploads: 20
Originally Posted by Shinni
Lua Code:
  1. local origLeft = GAMEPAD_WORLD_MAP_TOOLTIP_FRAGMENT.control.GetLeft
  2. local wantedSize = 200
  3.  
  4. GAMEPAD_WORLD_MAP_TOOLTIP_FRAGMENT.control.GetLeft = function(self)
  5.     _, error_msg = pcall(function() error("") end)
  6.     local lineNumber = string.match(error_msg, "WorldMap.lua:(%d*): in function 'GetGamepadAdjustedMapDimensions'")
  7.     if lineNumber then -- this function was called from the GetGamepadAdjustedMapDimensions function
  8.         local right = GAMEPAD_WORLD_MAP_INFO_FRAGMENT.control:GetRight()
  9.         local padding = 50
  10.         -- the GetGamepadAdjustedMapDimensions function will call:
  11.         -- local newMapWidth = left - right - padding
  12.         -- so we change our result to:
  13.         return wantedSize + right + padding
  14.     end
  15.     return origLeft(self)
  16. end
Really good idea. Hacking the hack with a hack.
I play around with this. Thanks, Shinni!
__________________
@votan73 (EU - megaserver)
Report comment to moderator  
Reply With Quote
Unread 02/03/17, 01:17 PM  
Shinni
AddOn Author - Click to view AddOns

Forum posts: 63
File comments: 240
Uploads: 19
Originally Posted by votan
Originally Posted by DeanGrey
Disregard. Somehow missed the bit about controller support. Shame.
This part of ZOS code prevents me from gamepad support:
Code:
local function GetGamepadAdjustedMapDimensions()
It is called here, which does not allow me to size the mini map:
Code:
local function SetMapWindowSize(newWidth, newHeight)
    if(IsInGamepadPreferredMode()) then
        newWidth, newHeight = GetGamepadAdjustedMapDimensions()
    end
All functions unreachable from outside.
I think I have a (very ugly) solution for your gamepad UI problem.
The local GetGamepadAdjustedMapDimensions function calls the globally available GAMEPAD_WORLD_MAP_TOOLTIP_FRAGMENT.control.GetLeft function.
It's possible to modify the function in such a way, that it returns a special value only if it was called by the GetGamepadAdjustedMapDimensions function.
This way you can make GetGamepadAdjustedMapDimensions return your desired value, without affecting any other code/addons that might call GAMEPAD_WORLD_MAP_TOOLTIP_FRAGMENT.control.GetLeft.

Here is an example:
Lua Code:
  1. local origLeft = GAMEPAD_WORLD_MAP_TOOLTIP_FRAGMENT.control.GetLeft
  2. local wantedSize = 200
  3.  
  4. GAMEPAD_WORLD_MAP_TOOLTIP_FRAGMENT.control.GetLeft = function(self)
  5.     _, error_msg = pcall(function() error("") end)
  6.     local lineNumber = string.match(error_msg, "WorldMap.lua:(%d*): in function 'GetGamepadAdjustedMapDimensions'")
  7.     if lineNumber then -- this function was called from the GetGamepadAdjustedMapDimensions function
  8.         local right = GAMEPAD_WORLD_MAP_INFO_FRAGMENT.control:GetRight()
  9.         local padding = 50
  10.         -- the GetGamepadAdjustedMapDimensions function will call:
  11.         -- local newMapWidth = left - right - padding
  12.         -- so we change our result to:
  13.         return wantedSize + right + padding
  14.     end
  15.     return origLeft(self)
  16. end

and what it looks like ingame:
Report comment to moderator  
Reply With Quote
Unread 01/23/17, 02:43 AM  
votan
 
votan's Avatar
AddOn Author - Click to view AddOns

Forum posts: 378
File comments: 612
Uploads: 20
Originally Posted by DeanGrey
Disregard. Somehow missed the bit about controller support. Shame.
This part of ZOS code prevents me from gamepad support:
Code:
local function GetGamepadAdjustedMapDimensions()
It is called here, which does not allow me to size the mini map:
Code:
local function SetMapWindowSize(newWidth, newHeight)
    if(IsInGamepadPreferredMode()) then
        newWidth, newHeight = GetGamepadAdjustedMapDimensions()
    end
All functions unreachable from outside.
__________________
@votan73 (EU - megaserver)
Report comment to moderator  
Reply With Quote
Unread 01/23/17, 01:20 AM  
DeanGrey
 
DeanGrey's Avatar
AddOn Author - Click to view AddOns

Forum posts: 16
File comments: 73
Uploads: 3
Disregard. Somehow missed the bit about controller support. Shame.
Last edited by DeanGrey : 01/23/17 at 01:52 AM.
Report comment to moderator  
Reply With Quote
Unread 11/13/16, 04:11 AM  
votan
 
votan's Avatar
AddOn Author - Click to view AddOns

Forum posts: 378
File comments: 612
Uploads: 20
Some additional infos:
  1. Drawing the map the first time after (re-)load UI takes a bit longer, because the pin controls must be allocated first.
  2. Drawing pins is delayed, if 75% of the frame time is already used. There is a skip counter increasing the threshold everytime drawing was delayed.
  3. Additional addons hooking CreatePin can increase the CPU load and therefore the delay. e.g. WaypointIt or mini maps not using the world map directly.
If you like to, you can try to play around with lines like this:
spendTime =(500 + skipCounter) / GetFramerate()

500 is 50% of 1000ms (for World Map, the skipCounter is set to 250) => 75%
__________________
@votan73 (EU - megaserver)
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: