Head turning - doean't have much to do with what we discussed already, but anyway, if it's put in the game, it should be only while holding a key for it, and when the key is released your view jumps back to normal.
Freeaim - I think it's a possible idea to seperate head, weapon and body movement, at least in aimed mode - like beppo said, you wouldn't move your body if you follow a target until it moves too far, but when you follow it with your rifle, your head follows as well. That means you need to make the head+weapon turn while keeping the body at the same place.
2-eye open with reflex sights - the whole point of those sights is easy to use with 2 eyes open, which lets you see more than you'd see with 1 eye open. Doing the blending of 2 images seen from both eyes, if possible, is good and important to make.
2-eye open with irons - it's kinda different from reflex. It's very hard to focus on the irons with 2 eyes open. The small percent of soldiers who are trained to do so are probably trained to pretty much ignore what their left eye sees, so I doubt they enjoy much of the wider FOV advantage (they enjoy other physical advantages which can't really be put and won't matter in a game). If it IS made, the right eye picture should be quite a lot "stronger" than the left eye picture, unlike reflex sights, which should have both eyes equal, or close to equal.
I'd also write my suggestion in a form of pseudo-code for how I think the hipped/lowready/shouldered/aimed transition should be:
"start timer" = start counting miliseconds and put the value in the variant "timer". Sets timer=0.
"stop timer" freezes the value that's in the variant timer.
x is the number of miliseconds it would take to aim the weapon from the current position.
y is the time defined to differ between a "hold breath" and a "stop aiming". Value already exists in the game now. I suppose it's about 250ms?
Code:
When lowready:
OnAltfireDown
start timer
OnAltfireUp
stop timer
if timer<x then WeaponPosition=shouldered
else weaponposition=aimed
When shouldered:
OnAltfireDown
start timer
OnAltfireUp
stop timer
if timer<x then WeaponPosition=lowready
else weaponposition=x
When aimed:
OnAltfireDown
start timer
hold breath
OnAltfireUp
stop timer
breath again
if timer<y then WeaponPosition=shouldered
When hipped:
{same code as lowready}
Note: To hip your weapon at any given time click a new "hip weapon"
button. I can't see any better idea. Possibly make it a toggle that'll
alternate between lowready and hipped. Of course x should be increased
accordingly.
I hope someone can make a little application that'll show what my pseudo-code means, or simply try this control system when a mutie using these firing modes is made. Do not forget the shouldered (and to some degree lowready) mode is the heart of this thread.