zwzsg wrote:I don't understand the need for ShotX. We already have QueryWeaponX called right before spawning the projectile and FireWeaponX called right after, what does ShotX add that we couldn't do before?
Otherwise nice long waited additions.
QueryWeaponX is also called when the engine wants to check if the weapon has a line of fire (and several other places in the code), cycling through your firepoints with it will cause a few points to be skipped, FireWeaponX is only called once per burst (it's called before Query and Shot, BTW). ShotX is called once per projectile and only for those.
Since you can now emit multiple projectiles in one frame you would have to cycle by using QueryWeapon (as that's the only function that gets run between the projectile spawns) but since that's also called on other occassions you'll get skipped launch points and have to make sure you're actually firing if you emit any effects (so you don't get the unit constantly "firing blanks"). That only causes unnecessarily complex code if you try to compensate.
With ShotX I don't have to time any firepoint switches or muzzle effects, I just throw them in ShotX and know they'll happen exactly in time for my burst shots.