The clone window moving around bug
Looking at the xml version of the uisettings I think I see where the aeons old game bug comes from that has clone windows such as the bags moving around the screen when window size changes.
Window location is saved relative to of nine positions on the screen (top left, top middle, etc.). Previously when decoding the binary .ini files I had thought it was according to the PackLocation settings (as it should be IMO), but in order to shave off some bits I guess it is being saved relative to the nearest such position. In the XML this is stored as the "Alignment" property.
The bug now is that when the game window size changes, the client apparently recalculates the window position based on the Alignment in the uisettings, disregarding the PackLocation in the actual window itself. I can clearly reproduce this by either manipulating the .xml settings or simply by moving e.g. a bag to a respective corner of the screen. It will "stick" there when the client is resized, regardless of it's PackLocation setting.
I assume that this is because the client caches the window _clones only in the UIsettings (we know that they are not stored in _HUD) and reloads them from there without checking back with the non-clone version in _HUD. Possibly this was also done to prevent windows moving off screen, but I'd still consider it a bug (and people have been complaining about it for ages).
Ideally I'd like to have this fixed by putting all _clones into _HUD and thus treating them like normal windows (I guess you would still copy them to the non-clone version OnFocus() but you could copy from the _HUD version then). That would also allow manipulation of the clones by modders (such as I always wanted to mod a bag mod that has all bags glued together and moving as a single bag, but without being able to access the _clones via script I can't).
Last edited by gm9 : 02-19-2009 at 01:59 PM.