Totally unrelated to the expansion but occurring at the same time, I've reworked my user interface for EQ. After looking at what some other people had done I decided I could do better and set about doing it. I cleaned up and recoded the majority of the windows I had done previously and did a bunch more work on other windows.
The first changes I did resulted in Player, Group, and Target windows which looked almost the same as my older ones but internally were far different. Previously I coded them by feel. In other words I just hacked on them until they worked properly and looked right without figuring out the underlying logic of how they worked. I ended up recoding them from scratch pretty much. All three are now pretty easily extensible if the need ever crops up and do things the way they do in a logically laid out fashion. This allowed me to easily make two versions of the Player window. One with Exp and AAExp percentages and one without. Originally I was actually going to merge the aforementioned windows into a single window but I decided against that because the game would still bring up all three windows such that the user would have to turn two of them off after loading the skin. I actually had this most of the way coded before I realized this. That was ok though because I was able to reuse a large chunk of the code when I broke it back into the separate windows.
After that I did a bunch of cleanup on things like the Spell Casting Time window. I changed them around to suit me better by making many of the windows smaller and more conveniently located. As part of this I changed the main Spell window to have round spell slots that take up less room than the original oblong oval slots.
While testing these changes out on the test server I noticed that the game was complaining about some missing objects in the xml files. I tracked these down and determined that it was primarily due to minor changes for the new expansion that was upcoming. I added in the missing bits where appropriate so that I wouldn't have to modify it when the expansion was released. As of yesterday when the expansion came out suprisingly these modifications worked perfectly on the first try.
The biggest thing I wanted to do was implement a new HotButton which consisted of the ten hot buttons and a tabbed mini-window beside it that would have each inventory and wearable item slot in it. I got the idea from another person's implementation of this, Athee was the name I believe. However that particular one was pretty large and kind of clunky. I decided to do something similar but more complete and hopefully more intuitive. I started by rearranging the original HotButton elements slightly to look more the way I wanted them to. Then I expanded the window and wrote a simplified tab to put to the right of the hot buttons. This didn't work. I won't bore you with the details but it took me a couple of hours of experimenting to get it working properly. Once I got it working I added all eight inventory slots to tab 'a' along with the weapons slots. It took a bit of trial and error to get the sizing right on the slots. They ended up being about 60% the size of the normal hot buttons. Then I made tab 'b' which contains almost all of the wearable armor slots. Unfortunately there are eighteen pieces of armor slots and only sixteen slots on each tab. This meant the last couple, Charm and Feet, are on tab 'a' along with the weapons and ammo slots. This gives me the ability to quickly right-click on armor for spells or to swap out weapons without taking up HotButton spots or opening the inventory. It also only increases the footprint of the HotButton box by a small amount. It is actually shorter vertically, by twenty pixels I'm guessing and about forty-five pixels wider.
The only part of the UI that I haven't finished is the Inventory window. I totally rewrote this window back when I initially created my UI. Then I hacked in the Charm slot, Face button, and Tint buttons. I'm not really happy with how it looks but haven't yet come up with a new design I like either. For now it will just have to do. Hopefully inspiration will strike me in the next few days.
I did run into a couple of things I'm not too happy about in the UI. First off, tabbed windows and defined inner windows ignore the global fade settings. They also ignore the texture, fade, and transparency percentage settings of the window. I'm going to guess that this is a bug and hope that Verant fixes it sometime soon. I don't really like having my inventory tabs in my HotButton window fade out to 50% opacity. I want everything to always be at 90% with no timed fade. Second, the absolute positioning of windows is screwy. There doesn't appear to be a way to specify the exact coordinates of where you initially want the window to be. You can specify said coordinates but the game engine chooses to apply some sort of transform to them and place the window in a not-too easily predicted location. I managed through trial and error to at least get all of the windows so they don't overlap by default and aren't in the middle of the screen.
After all of that I'm pleased to announce that the UI is available for download here. There are two different versions. nekoken_plain does not have Exp or AAExp in the Player window. nekoken does. This is because I, personally, don't want to see how slowly the exp bars are going up but most other people do. This gives the downloader a choice. Download the appropriate zip file and read the README file in the same directory for installing instructions. Alternatively if you don't want the whole UI, you can just download the relevant XML file from the directory of the same name at the above mentioned location. There should also be a screenshot of each UI up shortly.
Update, March 03, 2003: I finally got around to logging in a character with a pet to test out the pet health bars in the Player and Group windows. The bars ended up being difficult to see so I've made them a pixel wider and changed the color to a bright magenta which looks much better. I also have added a new skin with a few customizations from the normal nekoken skin. This skin has a vertical buff bar and the HP numbers on a separate line in the Player window. This allows the Player window to be the same width as the Group and Target windows. The skin is called valionus and is downloadable at the above download location.