by Wogrim | 18/02/2009 21:03:27

[edit]Compilation of the stuff in this thread: http://forums.ba ttle.net/thread.html? topicId=15210162791& ;sid=3000&pageNo=3#59 The rest of this is the original post[/edit]
Extremely brief summary: current 'waypoint' system allows you to queue orders (not just move orders), and I'd like to know if it's possible (currently or a possible feature to add) to stack orders as well.
If that's a clear enough summary, you probably don't need to read the rest of this post.
I have a question in the waypoints thread that hasn't been answered yet (probably blue not being as interested in threads they already have a response in) so I'm gonna quote myself over to here in hopes for a response. I'm pasting all my posts from that thread just in case my initial post was unclear, but hopefully the first one is enough to explain the idea.
Here's the original thread these posts are from:
http://forums.battle.net/thread.html?topicId=15198911571&sid=3000
Q u o t e:
It wasn't a bad question but you could do it in WC3 so I don't see why they wouldn't put it in.
What I want to know is if there's a way to put actions at the FRONT of the queue so that you can basically have a stack, which would allow you to say, move to some location X, and then, while holding some modifier, do some action Y, such that instead of moving to X and then doing action Y (queue version), you do some action Y and then automatically go back to doing action X. Attack-move and patroll already basically do this with attacking anything they come across and then going back to attack-moving or patrolling once it's dead, but I'd like to see a generalized version.
Q u o t e:
What does my post have to do with a macro system?
I want, for example, to be able to attack-move to some location with Battlecruisers, then, if they come across an enemy worthy, stack a Yamato cast on top such that after the Yamato is cast, they go back to attack moving to the original location without me having to specifically tell them to do so.
Or, your high templar is being chased by hydras for whatever reason (he's away from your other units) so you tell him to move back to the base, and then at any time you can stack a psi-storm cast if the hydras get bunched up nicely or you get enough energy, such that as soon as the psi-storm is cast, he automatically follows through on his move order.
Sorry I'm trying to think of a good one for Zerg but nothing good's coming to me so I'll give one that isn't really Zerg-specific but with Zerg units = )
Suppose you've done some early zergling rush and want to focus fire your opponent's barracks, so you tell your lings to attack the barracks. However, you know some marines are being produced so when you see one come out you stack an attack order on the marine so they focus fire the marine, then instantly go back to focus firing the barracks. I know that if you have units on stop or attack-moving by a structure they'll normally stop attacking the structure to kill the unit, but I, for example, might not want that to happen if the unit that comes out is a medic, or of some scvs come to bug my zerglings.
Q u o t e:
They're not really automated. It just saves the previous orders so that you don't have to waste APM telling the unit manually to go back to what they were doing before you gave them the stacked order. As it is, stuff like attack-move and patrol are already basically somewhat automated such that you don't have to specifically tell your unit to attack the enemy; it's a more complicated order of "attack an enemy if you see one, then continue." Do you want those gone?
Thank you = )
It's really just the same system but allows you to add actions to the front instead of only the back. If you have a problem with a stack then you probably also have a problem with a queue. I'd assume they basically have some linked list of orders for each unit (or maybe for each unit group, it's not like I'm writing their game so I don't know the exact specifics) and each unit (group) has some pointer to the first order in that list. Queueing orders adds a move to the back of the list, while stacking orders adds a move to the front of the list (and makes sure to have the unit's order pointer point to that order). It should be really easy to implement unless their system is quite different from what I've assumed.
Q u o t e:
Ah I see.
A stack is just a data-type where you take things (in this case move orders) off the front or add them to the front.
A queue is a data-type where you take things off the front or add them on the back.
It's really easy to have the functionality of both, although I don't know if it has a specific name.
[ Post edited by Wogrim ]
|