Unable to remove enchants

Topics: Rawr.Base
Feb 23, 2009 at 9:29 PM
Edited Feb 23, 2009 at 9:29 PM
On Rawr.Moonkin, it keeps putting a 63 SP weapon enchant on my "held in offhand" item, but wont' let me remove the enchant completely, so I've just been manually changing it to something useless like agility, or stamina, so it doesn't throw DPS numbers off.  However, I can't seem to remove cloak, shoulder, head, or any other enchants either (Choosing "No Enchant" doesn't do anything).  Also, shouldn't it know that "Held in offhand" type items can't be enchanted at all, and only allow those enchants on actual weapons?  This functionality works on Rawr.Mage, it doesn't even let you choose any enchants for mage offhands, but on moonkin and tree it let's me choose offhand enchants which makes no sense.

Edit:  This is on 2.2.0b1 by the way
Feb 23, 2009 at 9:40 PM
So I don't clutter this place with new posts, i'll make an addendum here:

I was removing all items from my character by setting them all to 'Empty', and then selected 'available for optimizer' items in the pane to the right (Remember, I was unable to remove enchants so I just left them).  Then when I went to run the optimizer, it crashed on me with that .NET error (Thankfully I'd saved my character after removing all the equipment and selecting available options).

After opening Rawr again, I noticed the items were properly removed, but everything had "No Enchant" like I had wanted before.  Being the diligent tester that I am, I wanted to try to reproduce the error I'd gotten.  So I went to select an enchant on an "Empty" chestpiece of "Powerful Stats", which crashed Rawr again...

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at Rawr.FormItemSelection.Select(Item item)
   at Rawr.ItemSelectorItem.ItemSelectorItem_MouseClick(Object sender, MouseEventArgs e)
   at System.Windows.Forms.Control.OnMouseClick(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ContainerControl.WndProc(Message& m)
   at System.Windows.Forms.UserControl.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


From what I can tell, it's trying to set the enchant to the "Item" which is Empty (and thus, doesn't exist), giving us our happy NullReferenceException.  Not sure if it's worthwhile for you guys to put in a check here when selecting enchants to ensure an item is equipped, but I figured I would point it out  (I didn't get a look at the error when I was trying to optimize, but I figure it's probably a similar issue).



Feb 23, 2009 at 9:48 PM
Ope, I reproduced the optimizer error without having any enchants.  I had all items unequipped, and all enchants off, but I did have items "Available for optimizer" in all slots and gems and enchants.  When Attempting to run the optimizer I got this:


See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Rawr.Optimizer.GetPossibleGemmedItemsForItem(Item item, String gemmedId, Item[] gemItems, Item[] metaGemItems)
   at Rawr.Optimizer.PopulateAvailableIds(List`1 availableItems, Boolean overrideRegem, Boolean overrideReenchant)
   at Rawr.Optimizer.InitializeItemCache(Character character, List`1 availableItems, Boolean overrideRegem, Boolean overrideReenchant, Boolean templateGemsEnabled, CalculationsBase model)
   at Rawr.FormOptimize.buttonOptimize_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


Must have something to do with my character having no gear on, since it works fine when items are equipped.


Coordinator
Feb 23, 2009 at 9:54 PM
We'll look into the bugs that arise when an enchantable/optimizable slot is empty.

However, can you explain why you were doing that anyway? What were you trying to achieve my removing all your gear?
Feb 23, 2009 at 10:08 PM
I don't...actually know why I like to remove my gear when I do an initial optimization.  I know the optimizer doesn't actually take into account what I'm *currently* using, I just feel like it feels more..."fresh"...if I remove my gear first?

REGARDLESS!  I put a piece of gear in each slot with an enchant, but now every time I go to optimize Rawr crashes.

I uploaded my character XML to an issue here:

http://www.codeplex.com/Rawr/WorkItem/View.aspx?WorkItemId=12664