Post by Moongaze on Mar 25, 2008 2:40:05 GMT -5
This post is to talk about issues with the macro system within WOW when it comes to users that don't like to name their macros. These next two paragraphs are intro paragraphs. A set up for the situation at hand before I go into the solution. So bare with me
As it has been pointed out, macros with the same name (i.e., a "space" for the name) will not operate correctly and, when assigned to a button in LunarSphere, will use the first macro found that has a "space" for the name. So, if the user has three macros, and they are all called " " and do different things, LunarSphere will either pick the first " " macro it finds and run it, or it will pick a random one and run it. LunarSphere tells the Blizzard UI that it wants to run the " " macro, so the Blizzard UI is the one responsible for running it.
Now, I understand that people prefer to have their macros not have names so that they can drop the macro on an action button and not see the macro text on the button. Still, if someone wants to use a macro on a LunarSphere button, they need to know that the macro text doesn't appear on the button. Ever. You can name it whatever you want and it will not appear. So, with that in mind, I urge people to name their macros if they are going to drop it onto a LunarSphere button, and the name should be unique.
NOW, with that said, there have been talks about NOT using the macro name and just going with the macro ID to fix this issue. I thought that this would be a fine idea and it would work out well if the macros have unique IDs and the Blizzard UI's macro window organized the macros by name for easy searching. Sure enough, macros do not receieve unique IDs. Their ID is representative of the order they come in on the macro screen. Meaning that if your macro screen shows three icons, from left to right in this order
macroA, macroB, macroC
macroA is #1, macroB is #2, and macroC is #3. This is the lexicon order of the names.
When one wants to call a macro by it's ID, you specify the number. So, if I want to run macroB, I would run macro #2. The problem with this is when it comes to adding and deleting macros. If I delete macroB, I will have:
macroA, macroC
If I call macro #2, this is macroC, since that is the order we see. If I set a button to call macro #2, and I delete #1 or #2, the button will still call whatever macro is #2. To fix this, I would need to have LS be notified when a macro is created or deleted and shuffle the macro IDs around on my buttons. That's easy, no problem, and can be done.
The problem I face is what to do with global macros. As an example:
macroB (#1), macroC (#2) are global. On one character, I set a button to run macro #1. I log onto another character and decide to do one of two things:
1) Delete macroB, because I don't want it anymore. It's a lame macro. Thus, macroC becomes #1
or
2) I got a new macro that is awesome. I call it macroA (which, alphabetically, becomes the new #1).
In both situations, #1 refers to a DIFFERENT macro than it used to. Now, I log back into my first character that had macro #1 assigned. LunarSphere will notice that macro #1 exists and will continue on along happily. However, the button will now be referring to macroC (if we deleted macroB in choice #1), or it will be referring to macroA (if we went the route of choice #2). I can't determine if this macro is okay. I can't determine if ANY of the macros are okay, unless their ID doesn't exist. So, if you add a macro and the name comes lexiconally before all other macros you already have, ALL your global macros will be shifted around. I can't do anything about that.
That's the issue I have come up with after doing some preliminary tests on the macro system. If people want me to run macros via ID, the shifting can occur and be a pain, causing one to need to reassign macros sometimes when they log in, if they made global macro adds or deletes on another character. If you add or delete macros, any macros on that character's buttons will be re-applied properly. That is not an issue. It is ONLY an issue when you log onto ANOTHER character that is ALSO using the global macros.
I can let users decide to store macros by name or by ID in the settings, somewhere, so users that name their macros won't be bothered by this. Of course, since LunarSphere doesn't display the macro name on the button art, there is no need to "hide" the name of the macro by setting it to a space character.
I have run tests with the Blizzard UI and having two macros called "aaa" and assigning one of them to the screen, logging onto another character and changing the order of the global macros and then relogging into the original character to see what happens. The Blizzard UI takes this into account, probably because it has access to some data that I can't get access to due to the way my button data is stored, and it won't shift the macros around and mess things up. I'm not sure what an addon like Bartender or Bongos will do in this situation, and they might act strangely ... or not.
Thoughts, comments, ideas?
As it has been pointed out, macros with the same name (i.e., a "space" for the name) will not operate correctly and, when assigned to a button in LunarSphere, will use the first macro found that has a "space" for the name. So, if the user has three macros, and they are all called " " and do different things, LunarSphere will either pick the first " " macro it finds and run it, or it will pick a random one and run it. LunarSphere tells the Blizzard UI that it wants to run the " " macro, so the Blizzard UI is the one responsible for running it.
Now, I understand that people prefer to have their macros not have names so that they can drop the macro on an action button and not see the macro text on the button. Still, if someone wants to use a macro on a LunarSphere button, they need to know that the macro text doesn't appear on the button. Ever. You can name it whatever you want and it will not appear. So, with that in mind, I urge people to name their macros if they are going to drop it onto a LunarSphere button, and the name should be unique.
NOW, with that said, there have been talks about NOT using the macro name and just going with the macro ID to fix this issue. I thought that this would be a fine idea and it would work out well if the macros have unique IDs and the Blizzard UI's macro window organized the macros by name for easy searching. Sure enough, macros do not receieve unique IDs. Their ID is representative of the order they come in on the macro screen. Meaning that if your macro screen shows three icons, from left to right in this order
macroA, macroB, macroC
macroA is #1, macroB is #2, and macroC is #3. This is the lexicon order of the names.
When one wants to call a macro by it's ID, you specify the number. So, if I want to run macroB, I would run macro #2. The problem with this is when it comes to adding and deleting macros. If I delete macroB, I will have:
macroA, macroC
If I call macro #2, this is macroC, since that is the order we see. If I set a button to call macro #2, and I delete #1 or #2, the button will still call whatever macro is #2. To fix this, I would need to have LS be notified when a macro is created or deleted and shuffle the macro IDs around on my buttons. That's easy, no problem, and can be done.
The problem I face is what to do with global macros. As an example:
macroB (#1), macroC (#2) are global. On one character, I set a button to run macro #1. I log onto another character and decide to do one of two things:
1) Delete macroB, because I don't want it anymore. It's a lame macro. Thus, macroC becomes #1
or
2) I got a new macro that is awesome. I call it macroA (which, alphabetically, becomes the new #1).
In both situations, #1 refers to a DIFFERENT macro than it used to. Now, I log back into my first character that had macro #1 assigned. LunarSphere will notice that macro #1 exists and will continue on along happily. However, the button will now be referring to macroC (if we deleted macroB in choice #1), or it will be referring to macroA (if we went the route of choice #2). I can't determine if this macro is okay. I can't determine if ANY of the macros are okay, unless their ID doesn't exist. So, if you add a macro and the name comes lexiconally before all other macros you already have, ALL your global macros will be shifted around. I can't do anything about that.
That's the issue I have come up with after doing some preliminary tests on the macro system. If people want me to run macros via ID, the shifting can occur and be a pain, causing one to need to reassign macros sometimes when they log in, if they made global macro adds or deletes on another character. If you add or delete macros, any macros on that character's buttons will be re-applied properly. That is not an issue. It is ONLY an issue when you log onto ANOTHER character that is ALSO using the global macros.
I can let users decide to store macros by name or by ID in the settings, somewhere, so users that name their macros won't be bothered by this. Of course, since LunarSphere doesn't display the macro name on the button art, there is no need to "hide" the name of the macro by setting it to a space character.
I have run tests with the Blizzard UI and having two macros called "aaa" and assigning one of them to the screen, logging onto another character and changing the order of the global macros and then relogging into the original character to see what happens. The Blizzard UI takes this into account, probably because it has access to some data that I can't get access to due to the way my button data is stored, and it won't shift the macros around and mess things up. I'm not sure what an addon like Bartender or Bongos will do in this situation, and they might act strangely ... or not.
Thoughts, comments, ideas?