Extra spacing
String mode vars can only be constructed (and set) with string values.
Nil is not allowed.
Update comments.
Add a 'has_value' function to check whether the mode var's value is considered
valid and/or 'real'.
Implement has_value as a direct property.  Retain function with 'f_' prefix.
Convert state.CombatForm and state.CombatWeapon to string mode vars.
Use has_value checks.
Fix syntax errors